ci(next): a superseded feat-cmux-next push still gets its Release compile

Merged
TE
16d ago
+31-1

Summary

feat-cmux-next pushes compile nothing. push-head-preflight marks a push superseded once the branch has moved, and every Mac job then skips. Merges land about once a minute, so nearly every push is superseded before its preflight runs. Of 40 sampled base pushes (2026-10-21), none ran the Release compile: 28 skipped it and 12 have no check. A base compile break (#22764, palette familyRow) therefore showed up only as reds on other PRs, and no green compile requested nightly-next.

The Release compile now runs on every feat-cmux-next push, current or not.

  • One per push, superseded ones cancelled: the job's existing concurrency group (cmux-next-push-<ref>-release-compile, cancel-in-progress false) keeps one compile running and the newest push waiting. GitHub cancels a waiting job when a newer one queues.
  • Low priority: push attempt 1 takes vars.CI_NEXT_PROMOTE_POOL, the reserved promotion mini, so no PR waits on it.
  • Visible: a red compile marks that commit red, and push-attribution comments on the PRs in its range.
  • nightly-next: request-nightly-next.sh already skips a commit nightly-next contains, so promotion can't go backwards.

Every other Mac job still skips superseded pushes.

Changelog

none

Observed / Not run

  • New test: test_a_superseded_base_push_still_compiles_one_at_a_time fails on the base workflow (False is not true) and passes on this head. Its class, ReleaseCompileOnCmuxNextSwiftPullRequests, passes all 6 tests, run on cmux16.
  • Whole file: tests/test_cmux_next_checks_workflow.py has 111 tests. Two PushPreflightBehavior tests fail on cmux16 at both base and head, because macOS has no timeout; Linux CI has it.
  • Pre-push gate: no new violations.
  • Not run: a real push run. The first feat-cmux-next push after merge is the proof.

Agent session: cosmic-gray

๐Ÿค– 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 the Release compile run on every feat-cmux-next push, including ones already superseded by a newer push at preflight time. Previously the compile skipped superseded pushes, and since merges land about once a minute that meant almost no base push compiled โ€” 0 of 40 sampled pushes (2026-10-21) โ€” so a base compile break showed up only as reds on other PRs and never requested nightly-next.

Behavior

  • The job's concurrency group keeps one compile running and the newest push waiting; GitHub cancels a waiting job when a newer one queues.
  • The job takes the reserved promotion runner, so it competes with no pull request.
  • A red compile marks that commit red and push-attribution names the PRs in its range; request-nightly-next already skips committed work, so promotion stays monotonic.
  • All other Mac jobs still skip superseded pushes.