.github/workflows/.
CI
Runs on every pull request and push to
main. Lints code and verifies doc generation is up to date.Deploy
Triggers on push to
main or manually. Builds the full HTML site and deploys it to GitHub Pages.Sync Webpack
Runs daily at 04:00 UTC. Checks for new webpack commits, regenerates docs, and pushes updates automatically.
CI (ci.yml)
Triggers: pull_request (any branch) and push to main.
Permissions: contents: read
The CI workflow runs two parallel jobs.
Job: lint
Runs on every push to main and every pull request.
Job: docs-check
Runs on pull requests only (if: github.event_name == 'pull_request'). Verifies that the pages/ directory matches what generate-docs would produce for the pinned webpack commit.
Read HEAD_COMMIT
Reads the pinned webpack commit SHA from the
HEAD_COMMIT file and exposes it as a step output.Deploy (deploy.yml)
Triggers: push to main, or manual dispatch via workflow_dispatch.
Permissions: contents: read (build job); pages: write + id-token: write (deploy job).
workflow_dispatch is available, so you can trigger a deployment manually from the Actions tab without pushing a commit.build then deploy.
Job: build
Build
Creates the This runs
out/ directory and runs the full build pipeline:generate-docs (Markdown) then build-html (static HTML).Job: deploy
Depends on the build job succeeding. Deploys to the github-pages environment.
Sync Webpack (sync.yml)
Triggers: Scheduled daily at 04:00 UTC, or manual dispatch via workflow_dispatch.
workflow_dispatch is available, so you can trigger a sync manually from the Actions tab at any time.contents: write
Get latest webpack commit
Fetches the current HEAD of Both values are written to step outputs for use in subsequent steps.
webpack/webpack main and reads the locally pinned commit from HEAD_COMMIT:Check for changes
Compares the latest upstream commit against the pinned commit. If they are identical, the remaining steps are skipped and the job exits cleanly.
Checkout webpack
(Skipped if no new commit.) Clones
webpack/webpack at the new commit into the webpack/ subdirectory.Setup Node.js
(Skipped if no new commit.) Installs the latest LTS release of Node.js with npm caching enabled.
Regenerate docs
(Skipped if no new commit.) Runs
npm run generate-docs against the new webpack source to refresh pages/.