Trigger an academy content update for your organization using the Layer5 Cloud API.
This action is useful when you want to build and deploy an academy site (powered by Hugo) and then notify the Layer5 platform to pull the latest content for your organization.
- name: Trigger Academy Update
uses: layer5io/academy-build@v1
with:
orgId: 'your-org-id'
token: ${{ secrets.ACADEMY_API_TOKEN }}
version: 'v1.2.3' # optional, defaults to "latest"You can integrate this into your workflows after building your site or on versioned releases.
The repository includes a Makefile for local site development and deployment tasks:
# Verify required commands and local dependencies are present
make check-deps
# Install site dependencies
make setup
# Start the local Hugo development server with live reload
make site
# Serve the site once with the file watcher off (no live reload)
make serve
# Build the site locally with draft and future content enabled
make build
# Build the site for a deploy preview (honors DEPLOY_PRIME_URL)
make build-preview
# Build the site using the Layer5 Cloud production URL
make build-production
# Empty the build cache, reinstall dependencies, and run the site locally
make clean
# Check Markdown for linting issues
make lint
# Fix Markdown linting issues
make lint-fix
# Check internal links in the built site
make check-links
# Verify Go is installed before starting the local site
make check-go
# Update the academy-theme package to the latest version
make theme-update
# Build the site with the Layer5 Cloud staging URL
make build-staging
# Update a Hugo module to a specific version
make update-module module=<module-path> version=<version>
# Set an org's module version in academy_config.json
make update-org-to-module-version orgId=<org-id> version=<version>
# Sync the built site from public/ to ../meshery-cloud/academy
make sync-with-cloud| Name | Required | Description |
|---|---|---|
orgId |
✅ Yes | The organization ID to update academy content for. |
token |
✅ Yes | Bearer token for authenticating the API call. Store it securely using secrets. |
academy-name |
❌ No | The name of the Academy being updated (e.g., Layer5 Academy). Defaults to "Academy" if not specified. |
version |
❌ No | Module version to be updated. Defaults to "latest" if not specified. |
| Name | Description |
|---|---|
response |
The JSON response returned by the Academy update API. |
This workflow runs on every release and triggers an academy content update with the release version:
name: Update Academy on Release
on:
release:
types: [published]
jobs:
update-academy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Call Layer5 Academy Update API
uses: layer5io/academy-build@v0.1.5
with:
orgId: 'your-org-id'
token: ${{ secrets.ACADEMY_API_TOKEN }}
version: ${{ github.ref_name }}
academy-name: 'your-academy-name' # Layer5 Academy
- name: Print API response
run: echo "${{ steps.update.outputs.response }}"Always store the token input as a GitHub secret and never hardcode it in your workflow YAML.
We warmly welcome all contributors! As you get started, please review this project's contributing guidelines.
Contributors are expected to follow the CNCF Code of Conduct.
✔️ Join the Layer5 Slack Community.
✔️ Discuss in the Community Forum.
✔️ Explore the Community Handbook.
✔️ Start with the Newcomer's Guide.
🧑💻 Maintained by Layer5
💬 If you encounter issues or want to contribute, please open an issue or pull request at github.com/layer5io/academy-build.
To use this action from the GitHub Marketplace, reference it like:
uses: layer5io/academy-build@master
Supports composite run steps – no runtime required.

