Skip to content

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

@hebypaul

Description

@hebypaul

Current Behavior

Currently, local development for layer5io/docs relies on a globally installed Hugo binary. The Makefile directly invokes hugo for critical targets (e.g., build: hugo and site: check-go hugo server -D -F). This reliance on a global installation can lead to version mismatch issues between contributors' local environments and CI, causing build failures or discrepancies.

Desired Behavior

A contained, highly reproducible local development environment where dependencies are strictly managed. Just like the main meshery/meshery documentation and the academy repositories, running make setup should fetch the correct hugo-extended NPM dependency. Subsequent commands (make site, make build, make clean, etc.) should automatically route to this local binary, eliminating the need for a global Hugo installation.

Implementation

This approach ports over the standardized build processes established in other Layer5 repositories (like meshery, exoscale-academy, and meshery-academy) to the docs repository.

Specific changes should include:

  • Makefile: Add a check-deps target to validate npm and the local hugo binary before execution. Reroute existing targets (build, site, 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, stripping out unnecessary global dependencies.
  • Documentation: Update README.md and CONTRIBUTING.md to remove any references to installing Hugo globally and emphasize the unified make setup -> make site workflow.

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 site from a fresh clone.

Contributor Guide and Resources

Metadata

Metadata

Assignees

Labels

area/ciContinuous integration | Build and releaseframework/hugohelp wantedExtra attention is needed

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions