ci: skip ci-status on pull requests into feat-cmux-next

Merged
TE
5d ago
+23-11

Leo asked: "what ci status job seems unnecessary"

Into feat-cmux-next, ci.yml's ci-status is not a required check and can only pass: its verdict step prints "feat-cmux-next uses cmux-next" and exits 0. Even so it:

  • held a runner while it waited on every job it needs (web included) for a verdict it never read;
  • showed up as one more pending check that landers waited on;
  • gave delta_since_green a green head even when web had failed on it.

Change

  • .github/workflows/ci.yml: ci-status skips pull requests into feat-cmux-next, label events included. #29747 kept it running on label events so that a skipped ci-status would never hide an earlier red one from gh-merge-green. On this base it was never red, so a skip hides nothing. main, merge_group and stacked next-line PRs keep it as before.
  • scripts/gh-merge-green: no longer requires ci-status on base feat-cmux-next; it still requires the cmux-next runs there. This script is not the landing path for feat-cmux-next, but run by hand it would otherwise refuse with "run CI for the pull request head".
  • next-autoland already treats ci-status as advisory (test_ci_status_is_advisory), so landing does not change. The CLAUDE.md line that said next-autoland requires ci-status was stale and is corrected.
  • Tests: two gh-merge-green refusal tests that used a missing or red ci-status on feat-cmux-next now refuse on a red cmux-next run. test_ci_change_areas asserts the new if:.

Changelog

none

Observed / Not run

  • Ran: python3 -m unittest tests.test_gh_merge_green (113 OK); tests/test_ci_change_areas.py (the same 4 failures as on base, none about ci-status); test_ci_label_events_skip_full_ci, test_ci_guard_workflow_structure, test_ci_required_checks_are_bounded, test_ci_required_checks_drift, test_next_batch_groups, test_ci_delta_since_green, test_ci_queue_janitor, test_base_red_excuse, test_web_validation, test_ci_workflow_run_sources and test_pr_red_checks_comment all pass.
  • Not run: a live CI run; this PR's own run is the first to show ci-status skipped.

Risk: high, because it changes gh-merge-green, the risk gate's enforcer. No Swift, so no compile is needed.

Leo-ask: ask-f5270bcf0f

Agent session: agent session

šŸ¤– 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

Skips the ci-status job for pull requests into feat-cmux-next, where it was not required and could only pass, so it no longer holds a runner, shows as a pending check, or reports a false green when web failed.

  • ci.yml now skips ci-status for PRs into feat-cmux-next, label events included; main, merge_group, and stacked PRs keep it.
  • gh-merge-green no longer requires ci-status on that base; the cmux-next run checks stay.
  • Fixes a stale CLAUDE.md note about next-autoland requiring ci-status.
  • Updates tests: refusals on that base now key off a red cmux-next run, and the new if: condition is asserted.