ci(nightly): prefer dedicated mini for variant preparation

TE
4d ago
+184-29

Leo said: “BUT WE HAVE A DEDICATED F***ING MAC FOR THAT.”

This stacked follow-up gives only prepare-nightly-variant-primary and prepare-nightly-variant an opt-in preference for the dedicated M4 Pro mini. The selector is deliberately exact: repository manaflow-ai/cmux, NEXT track, attempt 1, and CI_NIGHTLY_ONLY_RUNNER == glaeda-nightly-only-m4pro. When the variable is unset (the current state until rollout and hook registration), existing light-placement and Linux overflow routes are unchanged. Forks, retries, other tracks, and non-matching values preserve their existing fallbacks.

This PR is stacked on #30113 at f70b3ddbddcefb359e6484276b977c3c47e51517; it does not modify #30113. After #30113 lands, rebase this single dedicated-routing commit onto the new feat-cmux-next tip before the pinned merge.

Validation:

  • python3 tests/test_nightly_dedicated_variant.py (4 passed)
  • python3 tests/test_nightly_trusted_routing.py (34 passed)
  • python3 tests/test_ci_portable_job_placement.py (30 passed)
  • python3 tests/test_ci_nightly_off_blacksmith.py passed
  • YAML parse and git diff --check passed

Agent session: https://cmux.com/deeplink/agent?id=aid-cd7a5a0ee7f7c79a3232
🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Makes prepare-nightly-variant-primary and prepare-nightly-variant prefer a dedicated M4 Pro mini runner during NEXT-track nightly preparation. The routing is opt-in: it only applies on attempt 1 for manaflow-ai/cmux when CI_NIGHTLY_ONLY_RUNNER is set to glaeda-nightly-only-m4pro; all other forks, retries, tracks, and unset values keep the existing light-placement and Linux overflow fallbacks.

Adds tests covering the reservation selector, including assertion that only the two preparation jobs read it and that unset or non-matching contexts keep existing fallbacks.

  • Allowlists CI_NIGHTLY_ONLY_RUNNER in the runner label policy: only the exact glaeda-nightly-only-m4pro label is accepted, and the variable counts as a no-hosted-Mac variable.
  • Propagates the variable through the health-report and repo-variables workflows so drift detection can check it.