ci: Revert CI runners from Cirrus Labs back to GitHub-hosted#6032
Draft
ci: Revert CI runners from Cirrus Labs back to GitHub-hosted#6032
Conversation
Cirrus Labs is being discontinued — swap every `ghcr.io/cirruslabs/*` runner label back to the GitHub-hosted equivalent: - ubuntu-runner-amd64:24.04 → ubuntu-latest - macos-tahoe-xcode:26.2.0 → macos-26 (GA since 2026-02-26) - macos-sequoia-xcode:16.4 → macos-15 Only the runner labels change in this commit. The Tart-VM-specific workarounds (simulator warm-up, `wait_for_boot`, MAESTRO_DRIVER_STARTUP_TIMEOUT, TOOLCHAINS env, dual corepack paths, Swiftly block, extra CocoaPods install) are intentionally left in place — they'll be cleaned up in a follow-up once CI is green on GitHub runners. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Contributor
Android (legacy) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| df5d108+dirty | 527.06 ms | 603.58 ms | 76.52 ms |
| 5c1e987+dirty | 423.52 ms | 471.64 ms | 48.12 ms |
| 5fe1c6c+dirty | 401.62 ms | 445.28 ms | 43.66 ms |
| 3ce5254+dirty | 410.57 ms | 448.48 ms | 37.91 ms |
| 890d145+dirty | 504.54 ms | 491.55 ms | -12.99 ms |
| 2c735cc+dirty | 414.09 ms | 438.47 ms | 24.38 ms |
| 0d9949d+dirty | 403.57 ms | 437.00 ms | 33.43 ms |
| 3d377b5+dirty | 406.18 ms | 453.52 ms | 47.34 ms |
| 4953e94+dirty | 442.02 ms | 456.52 ms | 14.50 ms |
| a50b33d+dirty | 500.81 ms | 532.11 ms | 31.30 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| df5d108+dirty | 43.75 MiB | 48.08 MiB | 4.33 MiB |
| 5c1e987+dirty | 43.75 MiB | 48.08 MiB | 4.33 MiB |
| 5fe1c6c+dirty | 43.75 MiB | 48.14 MiB | 4.39 MiB |
| 3ce5254+dirty | 43.75 MiB | 48.12 MiB | 4.37 MiB |
| 890d145+dirty | 43.75 MiB | 48.14 MiB | 4.39 MiB |
| 2c735cc+dirty | 43.75 MiB | 48.08 MiB | 4.33 MiB |
| 0d9949d+dirty | 43.75 MiB | 48.13 MiB | 4.37 MiB |
| 3d377b5+dirty | 43.75 MiB | 48.14 MiB | 4.39 MiB |
| 4953e94+dirty | 43.75 MiB | 48.08 MiB | 4.33 MiB |
| a50b33d+dirty | 43.75 MiB | 48.08 MiB | 4.33 MiB |
📲 Install BuildsAndroid
|
Contributor
iOS (legacy) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 2c735cc+dirty | 1229.67 ms | 1221.50 ms | -8.17 ms |
| 3d377b5+dirty | 1218.48 ms | 1219.51 ms | 1.03 ms |
| df5d108+dirty | 1225.90 ms | 1220.14 ms | -5.76 ms |
| 3817909+dirty | 1183.90 ms | 1187.50 ms | 3.60 ms |
| 5fe1c6c+dirty | 1220.79 ms | 1217.63 ms | -3.16 ms |
| 3ce5254+dirty | 1219.93 ms | 1221.90 ms | 1.96 ms |
| 04207c4+dirty | 1191.27 ms | 1189.78 ms | -1.48 ms |
| 7ac3378+dirty | 1213.37 ms | 1218.15 ms | 4.78 ms |
| 890d145+dirty | 1223.59 ms | 1231.37 ms | 7.78 ms |
| 5c1e987+dirty | 1204.30 ms | 1222.15 ms | 17.85 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 2c735cc+dirty | 3.38 MiB | 4.74 MiB | 1.35 MiB |
| 3d377b5+dirty | 3.38 MiB | 4.76 MiB | 1.38 MiB |
| df5d108+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
| 3817909+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
| 5fe1c6c+dirty | 3.38 MiB | 4.77 MiB | 1.39 MiB |
| 3ce5254+dirty | 3.38 MiB | 4.76 MiB | 1.38 MiB |
| 04207c4+dirty | 3.38 MiB | 4.76 MiB | 1.38 MiB |
| 7ac3378+dirty | 3.38 MiB | 4.76 MiB | 1.38 MiB |
| 890d145+dirty | 3.38 MiB | 4.77 MiB | 1.38 MiB |
| 5c1e987+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
Contributor
Android (new) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 890d145+dirty | 486.42 ms | 514.85 ms | 28.43 ms |
| 3ce5254+dirty | 373.90 ms | 427.84 ms | 53.94 ms |
| 3817909+dirty | 357.52 ms | 391.52 ms | 34.00 ms |
| 4953e94+dirty | 398.80 ms | 431.81 ms | 33.01 ms |
| 5c1e987+dirty | 444.71 ms | 475.13 ms | 30.42 ms |
| 7ac3378+dirty | 410.67 ms | 442.60 ms | 31.92 ms |
| 2c735cc+dirty | 435.20 ms | 459.48 ms | 24.28 ms |
| 5fe1c6c+dirty | 365.84 ms | 408.62 ms | 42.78 ms |
| df5d108+dirty | 434.82 ms | 447.39 ms | 12.57 ms |
| 0d9949d+dirty | 414.88 ms | 428.68 ms | 13.81 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 890d145+dirty | 43.94 MiB | 49.00 MiB | 5.06 MiB |
| 3ce5254+dirty | 43.94 MiB | 48.98 MiB | 5.04 MiB |
| 3817909+dirty | 43.94 MiB | 48.94 MiB | 5.00 MiB |
| 4953e94+dirty | 43.94 MiB | 48.94 MiB | 5.00 MiB |
| 5c1e987+dirty | 43.94 MiB | 48.94 MiB | 5.00 MiB |
| 7ac3378+dirty | 43.94 MiB | 48.99 MiB | 5.05 MiB |
| 2c735cc+dirty | 43.94 MiB | 48.94 MiB | 5.00 MiB |
| 5fe1c6c+dirty | 43.94 MiB | 49.00 MiB | 5.06 MiB |
| df5d108+dirty | 43.94 MiB | 48.94 MiB | 5.00 MiB |
| 0d9949d+dirty | 43.94 MiB | 48.99 MiB | 5.05 MiB |
Contributor
iOS (new) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 2c735cc+dirty | 1223.33 ms | 1224.38 ms | 1.04 ms |
| 3d377b5+dirty | 1201.55 ms | 1201.80 ms | 0.25 ms |
| df5d108+dirty | 1207.34 ms | 1210.50 ms | 3.16 ms |
| 3817909+dirty | 1210.76 ms | 1215.64 ms | 4.89 ms |
| 5fe1c6c+dirty | 1201.36 ms | 1209.15 ms | 7.78 ms |
| 3ce5254+dirty | 1217.70 ms | 1224.69 ms | 6.99 ms |
| 04207c4+dirty | 1228.55 ms | 1226.04 ms | -2.51 ms |
| 7ac3378+dirty | 1202.35 ms | 1198.31 ms | -4.04 ms |
| 890d145+dirty | 1212.98 ms | 1220.10 ms | 7.12 ms |
| 5c1e987+dirty | 1208.43 ms | 1220.72 ms | 12.29 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 2c735cc+dirty | 3.38 MiB | 4.74 MiB | 1.35 MiB |
| 3d377b5+dirty | 3.38 MiB | 4.76 MiB | 1.38 MiB |
| df5d108+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
| 3817909+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
| 5fe1c6c+dirty | 3.38 MiB | 4.77 MiB | 1.39 MiB |
| 3ce5254+dirty | 3.38 MiB | 4.76 MiB | 1.38 MiB |
| 04207c4+dirty | 3.38 MiB | 4.76 MiB | 1.38 MiB |
| 7ac3378+dirty | 3.38 MiB | 4.76 MiB | 1.38 MiB |
| 890d145+dirty | 3.38 MiB | 4.77 MiB | 1.38 MiB |
| 5c1e987+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
GitHub-hosted macos-26 runner only ships iOS 26.x simulator runtimes, so the previous 'iPhone 16 / iOS >=18.0' requirement matched no device. 'iPhone 17' is the default current-gen simulator on macos-26 and still satisfies '>=18.0'. Matches what e2e-v2.yml already uses. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📢 Type of change
📜 Description
Swap every
ghcr.io/cirruslabs/*runner label in.github/workflows/back to the GitHub-hosted equivalent.ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04ubuntu-latestghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0macos-26ghcr.io/cirruslabs/macos-sequoia-xcode:16.4macos-15Touched workflows:
buildandtest.yml(all 7 jobs)codegen.ymle2e-v2.yml(metrics / react-native-build / react-native-test)native-tests.ymlsample-application.ymlsample-application-expo.ymlsize-analysis.ymltestflight.ymlOnly runner labels change in this PR. The Tart-VM-specific workarounds layered on top during the migration — simulator warm-up,
wait_for_boot,MAESTRO_DRIVER_STARTUP_TIMEOUT,TOOLCHAINS: XcodeDefaultenv, dualcorepack enable/npm i -g corepackpaths, the Swiftly+Swift 6 lint block, manual CocoaPods/Ninja installs, Maestro retries, and e2e test assertion relaxations — are intentionally left in place. They become unnecessary or simplifiable on GitHub runners, but stripping them in the same PR would obscure what broke. A cleanup PR follows once this one is green.💡 Motivation and Context
Cirrus Labs runners are being discontinued, so we need to move back to GitHub-hosted runners.
macos-26(macOS Tahoe / Xcode 26.2) has been generally available on GitHub since 2026-02-26, which removes the original reason for the Cirrus move.Migration history for context: #5485, #5675, #5696.
💚 How did you test it?
Draft PR with
ready-to-mergelabel so the full suite — E2E, native tests, sample application builds, size analysis — runs on the new runners.📝 Checklist
sendDefaultPIIis enabled🔮 Next steps
Follow-up PR to remove the Cirrus-specific workarounds once CI is green here:
TOOLCHAINS: com.apple.dt.toolchain.XcodeDefaultfrom iOS build steps.wait_for_boot: true/erase_before_boot: false,xcrun simctl bootstatus, Settings.app launch, andMAESTRO_DRIVER_STARTUP_TIMEOUToverride.sample-application.ymltest-ios.Enable Corepack (NPM)/Enable Corepackdual steps to a singlecorepack enable.gem install cocoapods+RBENV_VERSION: systemblock fromnative-tests.ymltest-ios (GH macOS runners ship CocoaPods).dev-packages/e2e-tests/cli.mjsandsamples/react-native/e2e/utils/maestro.ts.>= 1, app-start envelope scanning).🤖 Generated with Claude Code