Skip to content

feat(ci,docs): build and publish a combined HTML and spec doc artifact#2638

Open
danceratopz wants to merge 9 commits intoforks/amsterdamfrom
experiments/publish-docs
Open

feat(ci,docs): build and publish a combined HTML and spec doc artifact#2638
danceratopz wants to merge 9 commits intoforks/amsterdamfrom
experiments/publish-docs

Conversation

@danceratopz
Copy link
Copy Markdown
Member

@danceratopz danceratopz commented Apr 9, 2026

Add a docs-build.yaml workflow that builds HTML docs (mkdocs) and spec docs (docc) in parallel, combines them into a single artifact, and triggers the steel-website aggregator for deployment to steel.ethereum.foundation/docs/.

This replaces the mkdocs build job in test-docs.yaml and replaces gh-pages.yaml (follow-up issue to delete cf #2684).

Changes:

  • Add .github/workflows/docs-build.yaml with five jobs: check-should-publish, html-docs, spec-docs, combine, and trigger-aggregator.
  • Add .github/configs/docs-branches.yaml branch allowlist controlling which branches get published.
  • Delete .github/workflows/gh-pages.yaml -- spec docs are now built by docs-build.yaml and served via steel-website.
  • Slim test-docs.yaml to changelog and markdown lint only (renamed to "Static Doc Checks").
  • Update mkdocs.yml site_url to read from SITE_URL env var with fallback to steel.ethereum.foundation/docs/.
  • Update DocsConfig base URL to steel.ethereum.foundation/docs.

On PRs, only the two build jobs run (testing the build). On push to allowlisted branches, the full pipeline runs: build, combine, upload artifact, and dispatch to steel-website.

Related Issues or PRs

✅ Checklist

  • All: Ran fast static checks to avoid unnecessary CI fails, see also Code Standards and Enabling Pre-commit Checks:
    just static
  • All: PR title adheres to the repo standard - it will be used as the squash commit message and should start type(scope):.
  • All: Considered updating the online docs in the ./docs/ directory.
  • All: Set appropriate labels for the changes (only maintainers can apply labels).
  • Tests: Ran mkdocs serve locally and verified the auto-generated docs for new tests in the Test Case Reference are correctly formatted.

Cute Animal Picture

image

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 9, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.25%. Comparing base (132c09d) to head (091e548).
⚠️ Report is 1 commits behind head on forks/amsterdam.

Additional details and impacted files
@@               Coverage Diff                @@
##           forks/amsterdam    #2638   +/-   ##
================================================
  Coverage            86.25%   86.25%           
================================================
  Files                  599      599           
  Lines                37032    37032           
  Branches              3795     3795           
================================================
  Hits                 31943    31943           
  Misses                4525     4525           
  Partials               564      564           
Flag Coverage Δ
unittests 86.25% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@danceratopz danceratopz force-pushed the experiments/publish-docs branch from 53d81a0 to 950f232 Compare April 9, 2026 08:36
Split HTML docs (`mkdocs`) and spec docs (`docc`) into parallel CI
jobs that produce a combined artifact for `steel-website` deployment.

- Add `docs-build.yaml` with five jobs: `check-should-publish`,
  `html-docs`, `spec-docs`, `combine`, and `trigger-aggregator`.
- Add `.github/configs/docs-branches.yaml` branch allowlist.
- Slim `test-docs.yaml` to changelog and markdown lint only (renamed
  to "Static Doc Checks"); the `mkdocs` build job moves to the new
  workflow.
- Update `mkdocs.yml` `site_url` to read from `SITE_URL` env var
  with fallback to `steel.ethereum.foundation/docs/`.
- Update `DocsConfig` URLs to `steel.ethereum.foundation/docs`.
Add `experiments/**` branch trigger and `experiments/publish-docs` to
the allowlist so the full pipeline (including `combine` and
`trigger-aggregator`) runs on push. Revert before merge.
Write a summary table with branch, event, deploy, and allowlist
status. Include a callout explaining why artifacts will or will not
be published.
@danceratopz danceratopz force-pushed the experiments/publish-docs branch from 6485dc5 to 4dcd1d9 Compare April 15, 2026 12:10
Intentionally not dropping original commits for transparency.
For `workflow_dispatch`, `github.sha` points at the launch ref (typically
the default branch), not at the branch that `html-docs`/`spec-docs`
actually check out via the `ref:` override. Published `metadata.json`
and the `steel-website` dispatch payload therefore could reference a
commit on a different branch than the one that was built.

Resolve the tip SHA of the target branch in `check-should-publish` via
`git ls-remote` and expose it as a job output. Consume that output in
the `combine` metadata step and the `trigger-aggregator` dispatch.
The `edit_uri` value has no effect: mkdocs-material only renders the
"edit this page" pencil when the theme feature `content.action.edit` is
enabled, which this config does not enable. Drop the unused setting to
avoid a stale reference to `forks/amsterdam` once docs are published for
additional branches.
Previously the empty-allowlist branch wrote `should_publish=false` and
exited 0, silently no-op'ing all downstream publishing. `exit 1`
surfaces a misconfigured or missing `.github/configs/docs-branches.yaml`
as a failed check instead.
@danceratopz danceratopz added A-doc Area: documentation C-feat Category: an improvement or new feature A-ci Area: Continuous Integration labels Apr 15, 2026
@danceratopz danceratopz marked this pull request as ready for review April 15, 2026 13:09
@danceratopz
Copy link
Copy Markdown
Member Author

Successful artifact publish here: https://github.com/ethereum/execution-specs/actions/runs/24453695866

@danceratopz danceratopz requested a review from spencer-tb April 15, 2026 13:11
Comment thread mkdocs.yml
site_url: !ENV [SITE_URL, "https://steel.ethereum.foundation/docs/"]
repo_url: https://github.com/ethereum/execution-specs
repo_name: execution-specs
edit_uri: edit/forks/amsterdam/docs/
Copy link
Copy Markdown
Member Author

@danceratopz danceratopz Apr 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We didn't have this "edit on click" feature enabled our config anyway, so this was redundant config. Would be nice, but not relevant here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-ci Area: Continuous Integration A-doc Area: documentation C-feat Category: an improvement or new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant