ci: require a real Release result for nightly admission

Merged
TE
14d ago
+20-4

Problem

release-compile-fast was named cmux-next Release compile (Xcode 26) even when its client lacked --release. In that case it reported verdict=unavailable and exited successfully, while the Mac fallback could be refused. The promotion guard matches only the job name and success, so a commit could be promoted without any Release compile (for example dfe61743e1, run 40070427727).

Change

  • Rename the fleet wrapper to cmux-next Release compile (fleet fast check).
  • Add a small admission job with the stable gate name that runs only when the fleet wrapper's verdict is pass.
  • Keep the existing Mac fallback as the same stable gate name when the fleet check is unavailable or fails.
  • Add a workflow regression assertion covering the exact-name/pass-only contract.

This complements #24822, which handles a no-verdict fallback route in the adjacent Release job conditions. Together they preserve the fallback while ensuring promotion never treats an unavailable wrapper as a Release compile.

Changelog

  • Fixed: promotion admission cannot be satisfied by an unavailable fast-check wrapper.

Validation: targeted tests.test_cmux_next_checks_workflow passes all new and relevant gate tests; two pre-existing base-red routing assertions remain red (GeneratedFilesRunner.test_the_session_lane_label_comes_after_the_fork_clause, PathRoutingStructure.test_bot_attempt_three_drops_stale_owned_pool_placement). actionlint reports the existing base workflow-dispatch limit (11 inputs, unrelated to this diff). git diff --check passes.

Agent-Session: 01a16a6a-b5f9-7fe3-8cde-3987dc52cd17


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


Summary by cubic

Prevents nightly promotion from treating an unavailable fast-check wrapper as a Release compile. The wrapper used the stable gate name cmux-next Release compile (Xcode 26) even without a --release client, reporting verdict=unavailable while exiting successfully, so promotion could be satisfied without any real Release compile. The wrapper now has a distinct job name, and a new admission job with the stable gate name runs only when the wrapper reports a pass verdict.

  • Renames the fleet wrapper to cmux-next Release compile (fleet fast check).
  • Adds an admission job with the stable gate name that requires the wrapper's verdict == 'pass'.
  • Keeps the Mac fallback on the same stable gate name when the fast check is unavailable or fails.
  • Adds a workflow regression test covering the exact-name/pass-only contract.