layer5io / layer5io/academy-example
[CI] Migrate to npm-managed local Hugo and standardise Makefile targets
@hebypaul is already working on this.
Since Jun 10, 2026.
- Dominant language
- Makefile
- Stars
- 26
- Forks
- 38
- PR merge metrics
- No merged PRs in 30d
Description
Current Behavior
Currently, the layer5io/academy-example template relies on a globally installed Hugo binary or inconsistent npx invocations for local development. Because this repository serves as the blueprint for all Layer5 academies, any new academy generated from this template automatically inherits these problematic build scripts, leading to version mismatches and CI discrepancies for new contributors.
Desired Behavior
A contained, highly reproducible local development environment where dependencies are strictly managed via npm. Running make setup should fetch the correct hugo-extended NPM dependency. Subsequent commands (make site, make build, make serve, etc.) should automatically route to this local binary, eliminating the need for a global Hugo installation.
Implementation
This approach standardizes the build process for the template, ensuring all future academy repositories are created with correct CI hygiene from day one. This matches the migrations already applied to meshery/meshery, digitalocean-academy, and exoscale-academy.
Specific changes should include:
- Makefile: Add a
check-depstarget to validatenpmand the localhugobinary before execution. Reroutebuild,site,serve, andcleanto trigger their respectivenpm runscripts. - package.json: Add
dev:*scripts (e.g.,dev:build,dev:clean,dev:site) to explicitly handle Hugo commands with the correct flags, relying on the local node module instead of a global installation. - Documentation: Update
README.mdandCONTRIBUTING.mdto remove references to installing Hugo globally, emphasizing the unifiedmake setup->make siteworkflow for newcomers.
Acceptance Tests
-
make setupinstalls the localhugo-extendeddependency cleanly. -
make sitesuccessfully spins up the local development server using the NPM-managed binary. -
make cleancorrectly wipes the build cache using the local binary. - A user without a globally installed Hugo can build the template site from a fresh clone.
Contributor Guide and Resources
- 📚 Instructions for contributing to academy-example
- Layer5 documentation site and source
- 🎨 Wireframes and designs for Layer5 site in Figma (open invite)
- 🙋🏾🙋🏼 Questions: Layer5 Discussion Forum and Layer5 Community Slack
Contributor Guide and Resources
- 📚 Instructions for contributing to academy-example
- 🎨 Wireframes and designs for Layer5 site in Figma (open invite)
- 🙋🏾🙋🏼 Questions: Layer5 Discussion Forum and Layer5 Community Slack
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.