Migrate docs deployment to Pages artifacts#6571
Conversation
Greptile SummaryThis PR replaces the
Confidence Score: 4/5The change is straightforward and well-scoped: it swaps three GitHub Actions for the two official Pages actions, adds the correct minimal permissions, and wires up the github-pages environment. The action wiring (upload-pages-artifact → deploy-pages), permissions (pages: write, id-token: write), and environment name (github-pages) are all correct. The sole concern is that the workflow-level concurrency group is keyed on github.sha rather than the recommended fixed 'pages' group, meaning two simultaneous manual or scheduled runs could both proceed to the deploy stage. GitHub serialises these internally, so it is not a hard failure, but it diverges from the recommended pattern and could leave a stale deployment queued. .github/workflows/docs.yaml — the concurrency block at the top of the file is the only area worth a second look before merging. Important Files Changed
Sequence Diagram%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
participant S as Schedule / workflow_dispatch
participant DBT as doc-build-type job
participant BMD as build-multi-docs job
participant DD as deploy-docs job
participant GHP as GitHub Pages
S->>DBT: trigger
DBT-->>BMD: "trigger-deploy == true"
BMD->>BMD: git fetch + make multi-docs
BMD->>GHP: upload-pages-artifact (artifact: github-pages)
DBT-->>DD: "trigger-deploy == true"
BMD-->>DD: build-multi-docs complete
DD->>GHP: deploy-pages (fetches github-pages artifact)
GHP-->>DD: page_url
DD-->>DD: "environment url = page_url"
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
participant S as Schedule / workflow_dispatch
participant DBT as doc-build-type job
participant BMD as build-multi-docs job
participant DD as deploy-docs job
participant GHP as GitHub Pages
S->>DBT: trigger
DBT-->>BMD: "trigger-deploy == true"
BMD->>BMD: git fetch + make multi-docs
BMD->>GHP: upload-pages-artifact (artifact: github-pages)
DBT-->>DD: "trigger-deploy == true"
BMD-->>DD: build-multi-docs complete
DD->>GHP: deploy-pages (fetches github-pages artifact)
GHP-->>DD: page_url
DD-->>DD: "environment url = page_url"
|
# Description Backport #6571 from `develop` to `main` so the production documentation workflow can deploy through GitHub Pages artifacts. The current nightly workflow commits the complete generated multi-version site to `gh-pages`. That branch contributes approximately 656 MiB of compressed Git data and accounts for most of the repository clone payload. This change uploads the generated site with `actions/upload-pages-artifact` and publishes it with `actions/deploy-pages` instead. Documentation content, URLs, and multi-version behavior are unchanged. After this merges, a repository administrator must set the Pages source to GitHub Actions, run the Docs workflow once from `main`, verify the deployment, and then delete `gh-pages` after the rollback window. ## Type of change - Bug fix (non-breaking CI/infrastructure change) ## Validation - Confirmed the applied patch ID exactly matches merged PR #6571. - Ran `./isaaclab.sh -f` before committing; all hooks passed. - Ran `./isaaclab.sh -f` again after committing and before pushing; all hooks passed. - Validated the production-like workflow in https://github.com/kellyguo11/IsaacLab-public/actions/runs/29675383308. - Verified the deployed root redirect, version selector, representative branches/tags, and static assets. ## Checklist - [x] I have read and understood the contribution guidelines. - [x] I have run the pre-commit checks with `./isaaclab.sh -f`. - [x] Documentation changes are not required; published content is unchanged. - [x] My changes generate no new warnings. - [x] A code test is not applicable; the deployment workflow was validated end-to-end in the fork. - [x] A package changelog fragment is not required because no package changed. - [x] The contributors from #6571 are already represented in the project.
Description
Migrate the multi-version documentation deployment from commits on the
gh-pagesbranch to GitHub Pages artifacts.The current nightly workflow uses
peaceiris/actions-gh-pages, which commitsthe complete generated documentation site to
gh-pagesafter every deploy.That branch now contributes approximately 656 MiB of compressed Git data and
accounts for about 95% of the repository's clone payload.
This change uploads the generated site with
actions/upload-pages-artifactand deploys it with
actions/deploy-pages. It also grants the deploy job theminimal
pages: writeandid-token: writepermissions and records thedeployment URL on the
github-pagesenvironment.After this workflow is merged and a deployment is verified, a repository
administrator must:
gh-pagesbranch.Deleting
gh-pagesis expected to reduce a normal clone's compressed Gitpayload from approximately 694 MiB to 84 MiB without requiring users to pass
--single-branchor--depth 1.Type of change
Screenshots
Not applicable; the generated documentation content and URLs are unchanged.
Validation
./isaaclab.sh -fChecklist
./isaaclab.sh -fCONTRIBUTORS.mdor my name already exists there