Skip to content

Documentation deployment workflow

.github/workflows/deploy-docs.yml builds the public handbook and deploys a validated Pages artifact. It is callable by another workflow or by manual dispatch; it does not declare its own push trigger.

Build and deployment boundary

flowchart LR
    invoke["workflow call or manual dispatch"]
    config["resolve site and toolchain configuration"]
    build["install and build docs"]
    verify["optional site verification"]
    bundle["validate index.html and upload Pages artifact"]
    deploy["github-pages deployment"]
    invoke --> config --> build --> verify --> bundle --> deploy

The build job has read-only repository access. The deployment job receives pages: write and OpenID Connect token permissions for GitHub Pages. Publication is therefore separated from source checkout and site construction.

Configuration resolution

The workflow reads repository variables and optional .github/docs-deploy.env values for:

  • public site URL and generated site directory;
  • install, build, and verification commands;
  • Python, uv, Node.js, and Rust setup;
  • toolchain versions.

When commands are not configured explicitly, the workflow discovers supported make targets. In this repository, docs-check is an available build path. The default output location is artifacts/docs/site and the default public base is https://bijux.io/bijux-proteomics/.

Manual deployment is accepted only from main, master, or a v* tag. Other manual refs fail early instead of producing a successful build that was never eligible to publish.

Publication checks

Before upload, the workflow requires a selected site directory and its index.html. An optional verification command can inspect the built site. GitHub Pages configuration and upload occur only when the site is available; the deployment job then publishes that exact artifact to the github-pages environment.

Diagnose a stale or failed site

Symptom First evidence to inspect
no workflow run confirm a caller invoked the reusable workflow or dispatch it from an eligible ref
configuration failure resolved repository variables and .github/docs-deploy.env
build failure the discovered install/build command and MkDocs diagnostics
no site artifact configured site directory and generated index.html
verification failure configured verify command and built-site contents
deployment failure Pages environment, permissions, and uploaded artifact

Run make quality-docs-links, make quality-docs-consistency, and make docs-check locally before publication. A successful deployment does not replace link, consistency, or reader-facing content review.