Problem
The versioned-docs pipeline stores each tag's rendered docs as a workflow artifact (docs-<tag>, uploaded by versioned-docs.yml), and gh-pages.yml reassembles the version dropdown by downloading all non-expired docs-* artifacts on each Pages deploy.
GitHub artifacts have a hard 90-day maximum retention. As of today, every docs-* artifact in the repo is expired (checked via gh api /repos/denful/den/actions/artifacts — 58 artifacts, all expired: true, including docs-v0.9.0 through docs-v0.16.0 and docs-latest):
5 docs-latest expired=true
3 docs-v0.16.0 expired=true
3 docs-v0.12.0 expired=true
3 docs-v0.11.0 expired=true
...
Consequence: any Pages deploy from current state publishes only the freshly built main docs — the version dropdown is empty and all historical versions are gone. Each tag's docs silently vanish 90 days after tagging.
(Separately, the artifact listing wasn't paginated and was capped at 30 results — fixed in #607 — but pagination doesn't help once artifacts expire.)
Possible fixes
- Commit versioned docs to a branch (e.g.
docs-versions or directly into the Pages artifact source). versioned-docs.yml pushes versioned/<tag>/ to the branch on each tag; gh-pages.yml checks it out instead of downloading artifacts. Durable, diffable, no expiry.
- Build historical versions from tags at deploy time —
gh-pages.yml checks out each tag and runs just docs-build per version. No storage, but deploys get slower with each release and old tags must keep building with current tooling.
- Re-upload artifacts on a schedule — a cron workflow re-publishes unexpired artifacts before the 90-day cliff. Fragile; doesn't recover the already-expired versions.
Option 1 seems like the right shape. Note the already-expired versions (v0.9.0–v0.16.0) would need a one-time backfill by rebuilding docs from their tags.
Problem
The versioned-docs pipeline stores each tag's rendered docs as a workflow artifact (
docs-<tag>, uploaded byversioned-docs.yml), andgh-pages.ymlreassembles the version dropdown by downloading all non-expireddocs-*artifacts on each Pages deploy.GitHub artifacts have a hard 90-day maximum retention. As of today, every
docs-*artifact in the repo is expired (checked viagh api /repos/denful/den/actions/artifacts— 58 artifacts, allexpired: true, includingdocs-v0.9.0throughdocs-v0.16.0anddocs-latest):Consequence: any Pages deploy from current state publishes only the freshly built main docs — the version dropdown is empty and all historical versions are gone. Each tag's docs silently vanish 90 days after tagging.
(Separately, the artifact listing wasn't paginated and was capped at 30 results — fixed in #607 — but pagination doesn't help once artifacts expire.)
Possible fixes
docs-versionsor directly into the Pages artifact source).versioned-docs.ymlpushesversioned/<tag>/to the branch on each tag;gh-pages.ymlchecks it out instead of downloading artifacts. Durable, diffable, no expiry.gh-pages.ymlchecks out each tag and runsjust docs-buildper version. No storage, but deploys get slower with each release and old tags must keep building with current tooling.Option 1 seems like the right shape. Note the already-expired versions (v0.9.0–v0.16.0) would need a one-time backfill by rebuilding docs from their tags.