layer5io / layer5io/academy-example

[CI] Migrate to npm-managed local Hugo and standardise Makefile targets

Open
#140 1 comment 0 reactions 1 assignee View on GitHub

@hebypaul is already working on this.

Since Jun 10, 2026.

area/ci
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-deps target to validate npm and the local hugo binary before execution. Reroute build, site, serve, and clean to trigger their respective npm run scripts.
  • 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.md and CONTRIBUTING.md to remove references to installing Hugo globally, emphasizing the unified make setup -> make site workflow for newcomers.
Acceptance Tests
  • make setup installs the local hugo-extended dependency cleanly.
  • make site successfully spins up the local development server using the NPM-managed binary.
  • make clean correctly 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

Contributor Guide and Resources

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.