ci(nightly): no nightly, promote or DEV path resolves to a GitHub-hosted Mac
Merged
TE
11d ago+189+189+012345678901234567890123456789-39-39-01234567890123456789
Leo: "HOW MANY TIMES DO I HAVE TO SAY / THE GITHUB HOSTED MACS / ARE THE SLOWEST THINGS / THEY PREVIOUSLY WREN'T EVEN UNDER CONSIDERATINO"
The routing order is Linux, then owned fleet Macs, then Blacksmith macOS last. GitHub-hosted macOS is never used on any nightly, promote or DEV path.
- New guard test:
tests/test_ci_nightly_no_hosted_mac.py, wired into ci-guards (release-notary) andtests/test-execution.toml.- It finds its workflows by file name, with no job list:
*nightly*.yml,*notarization*.ymlandcmux-next-dev-daily*.yml. - It fails on any hosted macOS label (
macos-NN,macos-latest,macos-NN-xlarge) in code lines past the fork branch: runs-on, matrix values, runner inputs, defaults and inline picks. - It applies the same rule to the runner-picker scripts whose outputs a runs-on reads, and fails if one references a
HOSTEDlabel. - It runs
nightly_sign_runner.pickwith no snapshot and with every label stalled, and requires a Blacksmith answer. - Blacksmith and Warp labels aren't hosted. The fork branch (
github.repository_owner != 'manaflow-ai' && 'macos-NN') is exempt, because it only evaluates in forks.
- It finds its workflows by file name, with no job list:
- Hosted labels it would catch, now moved to Blacksmith: each one falls back to
vars.MACOS_RUNNER_26orvars.MACOS_RUNNER_15, then the Blacksmith label, after the fork branch and any owned runner variable:auto-resume-nightly-notarization.yml(5 jobs) andresume-nightly-notarization.yml(2)nightly-next-canary.ymlnightly-next-train.yml:NIGHTLY_NEXT_TRAIN_RUNNERstays firstios-internal-nightly.yml:CI_IOS_INTERNAL_RUNNERstays first; the ephemeral signer moves to Blacksmith, which is trusted like hosted, so the key stays off owned Macscmux-tui-nightly.yml'smacos_retry_runnernightly.yml: refresh-compilation-cache (the job and its matrix) and the ghostty CLI helper (macOS 15)
- nightly.yml grows by 217 bytes, to 507,246, under the 512,000 limit.
Risk: these jobs now wait on Blacksmith macOS where they used to take a free hosted Mac. A hosted macOS 15 image and a Blacksmith macOS 15 image can carry different Xcode installs, so the ghostty helper is the job to watch.
Agent session: agent session
š¤ Generated with Claude Code
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.