Skip to content

Publish the documentation to GitHub Pages - #11

Merged
tobiaskaestner merged 2 commits into
mainfrom
tkaestner/pages-workflow
Oct 2, 2026
Merged

tobiaskaestner merged 2 commits into
mainfrom
tkaestner/pages-workflow

Conversation

@tobiaskaestner

Copy link
Copy Markdown
Contributor

Builds the zdocs documentation (the manual and the API reference in doc/) with GitHub Actions, and publishes it to GitHub Pages at https://tiacsys.github.io/zdocs/.

  • A pull request builds and checks only. A push to main, or a manual run on main, also deploys.
  • The site root is deploy/html/, as deploy-layout.rst and ADR 0012 describe, with a landing page next to the documents.
  • Gates after the build: doc-check, zero warnings in the stage-two logs, a link check of the assembled site (.github/scripts/check_site.py), and an audit for local paths, addresses and tokens.
  • Actions are pinned by commit SHA. Doxygen 1.16.1 comes from the release binary, checked by hash. Every Python package is pinned in doc/requirements-ci.txt. doc/west.yml gives CI a workspace with Zephyr v4.4.1 only.
  • The second commit moves the engine's sphinx-needs pin to 8.3.0, the reference version.

This PR is independent of the stack #4–#9: it touches none of its files.

Testing

Locally, in a west workspace like the CI one, with a new venv from the lock: doc-check OK, 0 warnings, 71 pages with 3626 internal links and 0 broken, audit clean, and an HTTP crawl of the site under /zdocs/ with 0 failures. Unit suite: 147 passed. The zdocs-tests acceptance suite gives the same result as at main.

One-time setting

Settings › Pages › Source = "GitHub Actions". Without it, the deploy job fails; the build job still runs.

🤖 Generated with Claude Code

tobiaskaestner and others added 2 commits October 2, 2026 14:41
A workflow builds the zdocs document set (doc/: the manual and the API
reference) and publishes it at https://tiacsys.github.io/zdocs/. A pull
request builds and checks only. A push to main, or a manual run on
main, also deploys.

The site root is deploy/html/, as deploy-layout.rst and ADR 0012
describe, with a landing page next to the documents. This document set
has no Doxygen document, so the Doxygen cross-document navigation is
not in the site.

New files:

* .github/workflows/docs.yml: actions pinned by commit SHA, Doxygen
  1.16.1 from the release binary, checked by hash and cached. Read-only
  permissions, except pages and id-token in the deploy job.
* .github/scripts/check_site.py: every href and src of the assembled
  site must resolve to a file in the site, and a #fragment to an id.
* doc/west.yml: the workspace for CI, Zephyr v4.4.1 only. The build
  needs Zephyr as a CMake package and for its doc/_extensions.
* doc/requirements-ci.txt: every Python package pinned, also the
  indirect ones. sphinx-needs is 8.3.0, the reference version.
  Pygments stays at 2.20.0: with 2.21.0, doccheck reads a pattern in
  highlighted code as a dead link.
* doc/site/index.html: the landing page.

Gates after the build: doc-check, zero warnings in the stage-two logs,
the link check, and an audit for local paths, addresses and tokens.

Checked locally in a west workspace like the CI one, with a new venv
from the lock: doc-check OK, 0 warnings, 71 pages and 3626 internal
links with 0 broken, audit clean, and an HTTP crawl of the site under
/zdocs/ with 0 failures.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tobias Kaestner <tobias.kaestner@inovex.de>
The engine pinned sphinx-needs 8.1.1. The working environments of the
zdocs consumers (the safety docset, the safety toolbox) and the CI lock
of the documentation workflow use 8.3.0, the reference version. The
engine pin now matches, so doc/requirements-ci.txt no longer lists an
exception.

Checked with a new venv from doc/requirements-ci.txt: the unit suite
passes (147), the docs build has doc-check OK and 0 warnings, the site
check and the HTTP crawl find 0 broken links. The zdocs-tests
acceptance suite gives the same result as at origin/main (273 passed;
the failures are the steps that need unmerged engine changes).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tobias Kaestner <tobias.kaestner@inovex.de>
@tobiaskaestner
tobiaskaestner merged commit 7b0ffc5 into main Oct 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant