Skip to content

ci: opt this repo's docs build into the GPU upgrade pass (#885 part 2) - #946

Merged
ocots merged 1 commit into
mainfrom
ci/gpu-docs-build
Sep 2, 2026
Merged

ci: opt this repo's docs build into the GPU upgrade pass (#885 part 2)#946
ocots merged 1 commit into
mainfrom
ci/gpu-docs-build

Conversation

@ocots

@ocots ocots commented Sep 2, 2026

Copy link
Copy Markdown
Member

Phase F — the last piece of #885. Everything it depends on is merged: CTActions#71 (the reusable build-gpu job), #941 + #945 (gpu.md executable, CTBase 0.30.4-beta).

Full design and the feasibility probe behind it: .reports/campaign/P-gpu-docs-executable.md.

What this wires

with:
  use_ct_registry: true
  gpu_runner: '["occidata"]'
  gpu_timeout_minutes: 90
  • gpu_runner opts this repo into the reusable's build-gpu job. The existing GitHub-hosted build job is untouched and still deploys first, every push and tag — build-gpu runs only once build has already published (needs: build) and, with continue-on-error: true, can never fail the workflow. On success it redeploys the same site with real GPU output; on failure, or if occidata is queued past its budget, the site build already published is simply left in place. Docs publishing is never on the critical path of a self-hosted box. build-gpu's own if restricts it to push/tag, so PR-preview builds are unaffected regardless of what's passed here.
  • gpu_timeout_minutes: 90 — real margin over the 2265s (~38 min) measured on occidata during the Phase D probe (2026-09-02), not the reusable's blanket 120 default. Budgets for the slower case right after occidata-runner-maintenance.yml's Monday 02:30 UTC cache purge, not the same-day warm case that was actually measured.

New: a concurrency group

concurrency:
  group: documentation-${{ github.ref }}
  cancel-in-progress: true

Load-bearing now that a GPU pass can run behind a push for up to 90 minutes: without it, two pushes to main in quick succession could leave an older run's GPU pass finishing — and redeploying — after a newer run's CPU build has already published, showing older content over newer. cancel-in-progress cancels the whole older run, its queued or running GPU job included. Tags carry distinct refs (the tag name, not main), so a release build is never cancelled by an unrelated push to main, and vice versa.

What this PR's own CI will and won't show

build-gpu only fires on push/tag, by design (see above) — so this PR's own preview build stays exactly as fast as every other docs PR today, and does not exercise the new job. The real test is the first push to main after merge, where build deploys as always and build-gpu should show up as a second job in the run graph, landing on occidata behind it.

🤖 Generated with Claude Code

Phase F of the plan, the last piece: `CTActions/documentation.yml`
(#71, merged) and CTBase's `AmbiguousDescription` fix this page relies
on (#941, #945) are both in. This just wires the two new inputs and
adds the concurrency group they require.

- `gpu_runner: '["occidata"]'` -- opts into `build-gpu`. The existing
  GitHub-hosted `build` job is untouched and still deploys first, every
  time; `build-gpu` only runs once `build` has already published
  (`needs: build` in the reusable) and can never fail the workflow
  (`continue-on-error: true`) -- on success it redeploys with real GPU
  numbers, on failure or a long SLURM queue the already-published site
  is simply left as is. `build-gpu`'s own `if` restricts it to
  push/tag, so PR-preview docs builds are unaffected regardless.
- `gpu_timeout_minutes: 90` -- real margin over the 2265s (~38 min)
  measured on a same-day build (Phase D probe, 2026-09-02), not the
  reusable's blanket 120 default, budgeting for the slower case right
  after occidata-runner-maintenance.yml's Monday cache purge.
- `concurrency: { group: documentation-${{ github.ref }}, cancel-in-progress:
  true }` -- new, and load-bearing now that a GPU pass can run behind a
  push for up to 90 minutes: without it, two pushes to `main` in quick
  succession could let an older run's GPU pass finish (and redeploy)
  after a newer run's CPU build has already published, showing older
  content over newer. Tags carry distinct refs, so a release build is
  never cancelled by an unrelated push to `main`.

Closes #885.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@ocots ocots added run documentation Trigger Documentation documentation Improvements or additions to documentation labels Sep 2, 2026
@ocots
ocots merged commit 108c4eb into main Sep 2, 2026
15 checks passed
@ocots
ocots deleted the ci/gpu-docs-build branch September 2, 2026 15:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation run documentation Trigger Documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant