Repository navigation
fix(ci): keep swift-package-tests off the owned minis under a Release helper - #16110
Conversation
swift-package-tests builds the SDK 15 Release Ghostty helper when the run is a full suite with release_build, and the owned minis carry Xcode 26.6 alone, so "Select helper Xcode" hard-fails there. The live picker places the lane on RUN_SWIFT_PACKAGES alone, so the test fails for now. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… helper The live picker placed the lane on RUN_SWIFT_PACKAGES alone, so a pull request carrying full-ci took an owned mini and failed "Select helper Xcode" at step 10, skipping steps 11 through 23 including "Run Swift package tests". The check went red without a package test having run. Restore the rule the previous picker read from pr_runner_pool.package_lane_owned(): the lane takes an owned Mac only when the run builds no SDK 15 Release helper. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 4 minutes. View limit detailsLimit details: You’ve used all 10 included reviews currently available. Review configuration: ⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
All contributors have signed the CLA ✍️ ✅ |
|
Merge receipt for |
What is wrong
swift-package-testsis red on every pull request carryingfull-ci, and no Swift package test runs before it goes red.On #15229 the job took
glaeda-std-xcode-26.6and failed at step 10,Select helper Xcode. Steps 11 through 23 then skipped, includingRun Swift package tests:Why
Under a full suite that also checks the Release build, the job first builds the Release Ghostty CLI helper against an SDK 15 Xcode. Only the Blacksmith macOS 15 image carries that SDK. The owned minis have Xcode 26.6 alone, and
scripts/select-ci-xcode.shexits non-zero rather than falling back, which is whatci-macos.ymldocuments for this job:The same comment states the rule that keeps the lane off those machines:
pr_runner_pool.package_lane_owned()still implements that rule, but it is no longer what production reads. #15988 moved pool selection toscripts/ci/simple_pool_picker.py, which buildsowned_jobsfrom the routing flags alone:So
swift-packageentersowned_jobswhenever the router attributed a change to a Swift package, whether or not the run builds the helper. The pull request pull ofci.ymlbefore #15988 carried the rule as a comment onRUN_SWIFT_PACKAGESitself, and the simplification kept the input while dropping the condition.The change
Skip the lane's owned placement when the run builds the helper, and say why next to the code. The routed case, a package change without a full suite, keeps the owned Mac exactly as before.
Tests
tests/test_ci_simple_pool_picker.pygains a case for both halves: a full suite withrelease_buildkeepsswift-packageout ofowned_jobswhilerelease-buildstays in it, and a package change on its own still takes the pool. The first commit adds that test against the current picker and it fails there.Also green locally:
test_ci_pr_runner_pool(230 tests),test_ci_fork_runner_routing,test_ci_macos_xcode_selection,test_ci_change_areas,test_ci_release_helper_archs.Effect on merges
A person's re-run of the failed job does not route around this.
runs-onkeeps the owned pool whilegithub.run_attempt <= 2 || github.triggering_actor != 'github-actions[bot]', so a manual re-run at any attempt lands on the same machine and fails the same way. Until this lands, afull-cipull request cannot makeswift-package-testsgreen, andci-statusis required.🤖 Generated with Claude Code
Summary by cubic
Fixes
swift-package-testsred on everyfull-cipull request by keeping the lane off the owned minis when the run builds the Release helper. The pool picker now skips theswift-packagelane whenRUN_FULL_SUITEandRUN_RELEASE_BUILDare both true; routed package-only changes still take the owned pool. Adds test coverage for both cases.Written for commit 782adbd. Summary will update on new commits.