Repository navigation
ci: route test-only macOS lanes through MACOS_RUNNER_TESTS - #14135
Conversation
iOS simulator tests, the auth refresh and Iroh v2 package tests, and dispatched E2E runs all defaulted to Blacksmith macOS 26, the one pool with a backlog, through MACOS_RUNNER_IOS and MACOS_RUNNER_26. Those two variables also route release, nightly, TestFlight and App Store signing, so they cannot be flipped to move test traffic. test-ios.yml (auto), auth-refresh-tests.yml and the iroh-v2.yml client now read MACOS_RUNNER_TESTS first and fall back to their old variable. Every job that reads it verifies, before checkout, that a macos-* label landed on GitHub-hosted capacity, since the self-hosted fleet also carries a macos-26 label. app-host-test-rerun.yml no longer follows it: a rerun must build with the products' exact Xcode, so it stays on Blacksmith macOS 15. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EduXdN9PKnGsMQztJK7WeE
|
Warning Review limit reachedNext included review available in 5 minutes. View limit detailsLimit details: You’ve used all 10 included reviews currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (7)
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 ✍️ ✅ |
auth-refresh-tests.yml now runs on the dual-Xcode runner on main, so it keeps main's routing and leaves MACOS_RUNNER_TESTS. test-e2e.yml picks its runner in a separate job since #14132, so its hosted-route checks read that job's output. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EduXdN9PKnGsMQztJK7WeE
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
Keeps both runner rows in docs/ci-runners.md: MACOS_RUNNER_PR_COMPILE from this branch and the broadened MACOS_RUNNER_TESTS from #14135. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EduXdN9PKnGsMQztJK7WeE
Summary
At about 04:30Z on 2026-09-24, Blacksmith macOS 26 had 50 jobs queued and every other pool had none. Once the stale PR runs and E2E dispatches were cleared, most of what remained came from lanes that fall back to that pool:
test-ios.ymlsimulator dispatchesauth-refresh-tests.ymliroh-v2.ymlThese lanes route through
MACOS_RUNNER_IOSandMACOS_RUNNER_26, which are unset. Those same two variables also routerelease.yml,nightly.yml,ios-testflight.ymland the App Store upload, so setting them to move test traffic would also move signing.This PR changes three things:
test-ios.yml(withrunner: auto),auth-refresh-tests.ymland theiroh-v2.ymlclient now readMACOS_RUNNER_TESTSfirst, then fall back to their old variable and label. IfMACOS_RUNNER_TESTSis unset, routing is unchanged.MACOS_RUNNER_TESTSalready routestest-e2e.ymlandtest-macos-suite.yml, and it is now set tomacos-26.MACOS_RUNNER_TESTSnow starts with a Verify GitHub-hosted route step, the same check the PR app-host shards run since ci: run macOS jobs on GitHub-hosted runners alongside Blacksmith #14097. The self-hosted fleet also carries amacos-26label, so amacos-*request that lands anywhere other thanrunner.environment == github-hostedfails before checkout.runner_label_policy.pyflagsmacos-26for the same reason.app-host-test-rerun.ymlno longer followsMACOS_RUNNER_TESTS. A rerun builds the test bundle with the exact Xcode path recorded in the products receipt, andselect-ci-xcode.shfails if that path is missing. Setting the variable tomacos-26would have sent reruns to an image that may not carry that Xcode, so the rerun stays on Blacksmith macOS 15, where it ran before.docs/ci-runners.mddescribes the new scope of the variable. The self-hosted guard's pinnedtest-ios.ymlexpressions are updated to match.Testing
actionlintis clean on all six workflows.tests/test_ci_self_hosted_guard.shpasses (exit 0).test_run_e2e.pytest_app_host_test_rerun.pytest_runner_label_policy.pytest_ci_fork_runner_routing.pytest_ci_change_areas.pytest_ci_actionlint_covers_every_workflow.pytest_ci_reusable_workflow_permissions.pymacos-26. A dispatch that asks for an exact simulator runtime the hosted image doesn't carry will fail at simulator selection.runner: blacksmith-6vcpu-macos-26still forces the old pool.Checklist
🤖 Generated with Claude Code
https://claude.ai/code/session_01EduXdN9PKnGsMQztJK7WeE
Generated by Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Relieves the Blacksmith macOS 26 pool backlog by routing test-only macOS lanes through
MACOS_RUNNER_TESTSinstead ofMACOS_RUNNER_IOSandMACOS_RUNNER_26.test-ios.yml(auto) and theiroh-v2.ymlclient now readMACOS_RUNNER_TESTSfirst and fall back to their previous variable or label; if unset, routing is unchanged.auth-refresh-tests.ymlstays on main's dual-Xcode runner and doesn't follow the variable.MACOS_RUNNER_IOSandMACOS_RUNNER_26also route release, nightly, TestFlight, and App Store signing, so they can't be flipped to move test traffic.MACOS_RUNNER_TESTSnow fails before checkout if amacos-*request lands on anything other than GitHub-hosted capacity, since the self-hosted fleet also carries amacos-26label. Intest-e2e.ymlthe check validates the label chosen by its separate runner-selection job.app-host-test-rerun.ymlno longer followsMACOS_RUNNER_TESTS: reruns must build with the exact Xcode recorded in the products receipt, so they stay on the Blacksmith macOS 15 pool.Written for commit c4aa4ec. Summary will update on new commits.