ci(docs): build the MkDocs site with --strict in CI (refs #173) #189

Merged
not merged 3 commits from ci/173-mkdocs-build into main 2026-09-28 13:25:41 +00:00
Contributor

refs #173. This is the minimum step from the issue: the site is now built in CI, not published. Publishing still needs an ADR (Gitea has no built-in Pages) or a CLAUDE.md §12 correction, so the issue stays open.

  • make docs: creates a throwaway .venv-docs, installs pinned mkdocs==1.6.1 and mkdocs-material==9.7.7, then runs mkdocs build --strict. The target is also added to make ci.
  • New docs job in ci.yaml (setup-python@v5, then make docs).
  • Red, then green: the first commit fails on a link from runbooks/ci.md to a file outside docs/; the second turns that link into plain code.

Dependency (§13): mkdocs and mkdocs-material were already the site's declared toolchain (mkdocs.yml) but were never installed anywhere. They give a strict link/nav/theme check. Replacing them means writing our own Markdown link checker, and check-docs-nav.py already covers only the nav half. Risk: Material warns that MkDocs 2.0 drops its plugin/theme system, so both are pinned exactly. No ADR, since this adds no new decision beyond what mkdocs.yml already assumes.

Verified locally: make docs → Documentation built in 0.87 seconds.

🤖 Generated with Claude Code

refs #173. This is the minimum step from the issue: the site is now **built** in CI, not **published**. Publishing still needs an ADR (Gitea has no built-in Pages) or a CLAUDE.md §12 correction, so the issue stays open. - `make docs`: creates a throwaway `.venv-docs`, installs pinned `mkdocs==1.6.1` and `mkdocs-material==9.7.7`, then runs `mkdocs build --strict`. The target is also added to `make ci`. - New `docs` job in `ci.yaml` (`setup-python@v5`, then `make docs`). - Red, then green: the first commit fails on a link from `runbooks/ci.md` to a file outside `docs/`; the second turns that link into plain code. **Dependency (§13):** mkdocs and mkdocs-material were already the site's declared toolchain (`mkdocs.yml`) but were never installed anywhere. They give a strict link/nav/theme check. Replacing them means writing our own Markdown link checker, and `check-docs-nav.py` already covers only the nav half. Risk: Material warns that MkDocs 2.0 drops its plugin/theme system, so both are pinned exactly. No ADR, since this adds no new decision beyond what `mkdocs.yml` already assumes. Verified locally: `make docs` → `Documentation built in 0.87 seconds`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
not added this to the Iteration 6 — Production Posture milestone 2026-09-28 12:57:29 +00:00
not added 2 commits 2026-09-28 12:57:29 +00:00
Red: the strict build currently fails on a link out of docs_dir in
runbooks/ci.md.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
fix(docs): drop the link out of docs_dir so the strict build passes (refs #173)
CI / lint (pull_request) Canceled after 0s
CI / k8s (pull_request) Canceled after 0s
CI / build (pull_request) Canceled after 0s
CI / unit (pull_request) Canceled after 0s
CI / docs (pull_request) Canceled after 0s
CI / frontend (pull_request) Canceled after 0s
CI / mutation (pull_request) Canceled after 0s
CI / verify-stack (pull_request) Canceled after 0s
c9dcbd6174
MkDocs can't resolve links outside docs/, so the stryker-config.json path is
now plain code. The CI runbook lists the new docs job.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
not added the type:chorearea:docs labels 2026-09-28 12:57:31 +00:00
not added 1 commit 2026-09-28 13:03:36 +00:00
Merge branch 'main' into ci/173-mkdocs-build
CI / lint (pull_request) Successful in 1m51s
CI / k8s (pull_request) Successful in 9s
CI / build (pull_request) Successful in 1m29s
CI / unit (pull_request) Successful in 1m31s
CI / docs (pull_request) Successful in 1m46s
CI / frontend (pull_request) Successful in 2m17s
CI / mutation (pull_request) Successful in 5m38s
CI / verify-stack (pull_request) Skipped
19ac99b0a0
not merged commit b444e0c680 into main 2026-09-28 13:25:41 +00:00
Sign in to join this conversation.