Run GPU builds on-demand: add spot=false to all four workflows - #52
Conversation
RunsOn defaults to spot, so these workflows are exposed to the mid-run reclamation failure the org diagnosed in QuantEcon/meta#330 — spot capacity being reclaimed partway through a 15-25 minute single-GPU notebook build discards the whole run. Part of finishing the rollout tracked in QuantEcon/meta#330; audit trail in QuantEcon/meta#347. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
✅ Deploy Preview for timely-seahorse-68815c ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this comment.
Pull request overview
Switches GPU GitHub Actions workflows from spot pricing to on-demand capacity by explicitly setting spot=false in the runs-on label string. This aligns these workflows with the org-wide decision to avoid mid-run spot reclamation failures during longer GPU notebook builds.
Changes:
- Add
/spot=falseto the GPU runner label inci.yml,cache.yml,collab.yml, andpublish.yml. - Keep existing GPU instance family/image/disk selections unchanged while changing the spot/on-demand policy.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| .github/workflows/cache.yml | Adds spot=false to ensure scheduled/manual GPU cache builds run on on-demand capacity. |
| .github/workflows/ci.yml | Adds spot=false so PR GPU preview builds use on-demand capacity. |
| .github/workflows/collab.yml | Adds spot=false so PR execution checks run on on-demand capacity. |
| .github/workflows/publish.yml | Adds spot=false so tag-based GPU publish builds run on on-demand capacity. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…#54) Lands #51, #52, #53 and #50 as one change, and salvages the -n flag from #25. - runs-on: disk=large -> volume=80gb, plus spot=false, on all four GPU workflows. Now matches lecture-jax and lecture-python.myst byte for byte, allowing for collab.yml's different image. - Explicit permissions blocks on ci.yml, collab.yml and publish.yml so the default workflow token can drop to read. ci.yml and collab.yml also gain actions: read, which #53 declared only on publish.yml. - dawidd6/action-download-artifact -> @v21 at all four call sites; collab.yml was still on v3 while the rest were on v9. - -n added to the ci.yml PDF build so it matches publish.yml, closing a gap where a nitpick-class error passed the PR check and failed at publish time. #51, #52 and #53 conflicted pairwise over the same region of ci.yml and collab.yml, so they are resolved once here rather than through two sequential rebases. Part of the rollout tracked in QuantEcon/meta#330, with the permissions work from QuantEcon/meta#347. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Landed via #54, which set Merged there rather than here because this PR, #51 and #53 all rewrote the same region of One correction to the PR description for the record: it said this matched the pattern already in lecture-jax and lecture-python.myst, but both siblings carry |
RunsOn defaults to spot pricing, so all four GPU workflows here are exposed to the mid-run reclamation failure diagnosed in QuantEcon/meta#330 — spot capacity reclaimed partway through a 15–25 minute single-GPU notebook build discards the whole run, and the spot saving with it. The org-wide decision there is on-demand for all GPU builds.
This adds
spot=falseto theruns-onstring incache.yml,ci.yml,collab.ymlandpublish.yml, matching the pattern already in place inlecture-jaxandlecture-python.myst. Part of finishing the rollout tracked in QuantEcon/meta#330; the audit that found these is QuantEcon/meta#347 (item 1, as corrected).🤖 Generated with Claude Code