Skip to content

ci: Revert CI runners from Cirrus Labs back to GitHub-hosted#6032

Draft
antonis wants to merge 4 commits intomainfrom
antonis/revert-to-gh-runners
Draft

ci: Revert CI runners from Cirrus Labs back to GitHub-hosted#6032
antonis wants to merge 4 commits intomainfrom
antonis/revert-to-gh-runners

Conversation

@antonis
Copy link
Copy Markdown
Contributor

@antonis antonis commented Apr 22, 2026

📢 Type of change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring

📜 Description

Swap every ghcr.io/cirruslabs/* runner label in .github/workflows/ back to the GitHub-hosted equivalent.

Cirrus label GitHub label
ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04 ubuntu-latest
ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0 macos-26
ghcr.io/cirruslabs/macos-sequoia-xcode:16.4 macos-15

Touched workflows:

  • buildandtest.yml (all 7 jobs)
  • codegen.yml
  • e2e-v2.yml (metrics / react-native-build / react-native-test)
  • native-tests.yml
  • sample-application.yml
  • sample-application-expo.yml
  • size-analysis.yml
  • testflight.yml

Only 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: XcodeDefault env, dual corepack enable / npm i -g corepack paths, 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-merge label so the full suite — E2E, native tests, sample application builds, size analysis — runs on the new runners.

📝 Checklist

  • I added tests to verify changes
  • No new PII added or SDK only sends newly added PII if sendDefaultPII is enabled
  • I updated the docs if needed.
  • I updated the wizard if needed.
  • All tests passing
  • No breaking changes

🔮 Next steps

Follow-up PR to remove the Cirrus-specific workarounds once CI is green here:

  1. Drop TOOLCHAINS: com.apple.dt.toolchain.XcodeDefault from iOS build steps.
  2. Remove simulator warm-up block, wait_for_boot: true / erase_before_boot: false, xcrun simctl bootstatus, Settings.app launch, and MAESTRO_DRIVER_STARTUP_TIMEOUT override.
  3. Remove the Maestro warm-up flow in sample-application.yml test-ios.
  4. Collapse the Enable Corepack (NPM) / Enable Corepack dual steps to a single corepack enable.
  5. Drop the explicit gem install cocoapods + RBENV_VERSION: system block from native-tests.yml test-ios (GH macOS runners ship CocoaPods).
  6. Revisit per-flow Maestro retries in dev-packages/e2e-tests/cli.mjs and samples/react-native/e2e/utils/maestro.ts.
  7. Re-tighten e2e assertion relaxations that were added to mask Tart-VM timing (envelope sorting, HTTP span count >= 1, app-start envelope scanning).

🤖 Generated with Claude Code

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>
@antonis antonis added the ready-to-merge Triggers the full CI test suite label Apr 22, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 22, 2026

Android (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 381.48 ms 402.40 ms 20.92 ms
Size 43.75 MiB 48.14 MiB 4.39 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
4b87b12+dirty 421.82 ms 413.60 ms -8.22 ms
0d9949d+dirty 403.57 ms 437.00 ms 33.43 ms
3ce5254+dirty 410.57 ms 448.48 ms 37.91 ms
3d377b5+dirty 406.18 ms 453.52 ms 47.34 ms
3817909+dirty 406.67 ms 416.58 ms 9.91 ms
4953e94+dirty 442.02 ms 456.52 ms 14.50 ms
5fe1c6c+dirty 401.62 ms 445.28 ms 43.66 ms
890d145+dirty 504.54 ms 491.55 ms -12.99 ms
7d6fd3a+dirty 403.02 ms 422.56 ms 19.54 ms
a50b33d+dirty 500.81 ms 532.11 ms 31.30 ms

App size

Revision Plain With Sentry Diff
4b87b12+dirty 43.75 MiB 48.14 MiB 4.39 MiB
0d9949d+dirty 43.75 MiB 48.13 MiB 4.37 MiB
3ce5254+dirty 43.75 MiB 48.12 MiB 4.37 MiB
3d377b5+dirty 43.75 MiB 48.14 MiB 4.39 MiB
3817909+dirty 43.75 MiB 48.08 MiB 4.33 MiB
4953e94+dirty 43.75 MiB 48.08 MiB 4.33 MiB
5fe1c6c+dirty 43.75 MiB 48.14 MiB 4.39 MiB
890d145+dirty 43.75 MiB 48.14 MiB 4.39 MiB
7d6fd3a+dirty 43.75 MiB 48.14 MiB 4.39 MiB
a50b33d+dirty 43.75 MiB 48.08 MiB 4.33 MiB

@sentry
Copy link
Copy Markdown

sentry Bot commented Apr 22, 2026

📲 Install Builds

Android

🔗 App Name App ID Version Configuration
Sentry RN io.sentry.reactnative.sample 8.9.1 (84) Release

⚙️ sentry-react-native Build Distribution Settings

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 22, 2026

iOS (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1225.94 ms 1230.62 ms 4.68 ms
Size 3.38 MiB 4.77 MiB 1.39 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
7ac3378+dirty 1213.37 ms 1218.15 ms 4.78 ms
4b87b12+dirty 1212.90 ms 1222.09 ms 9.19 ms
890d145+dirty 1223.59 ms 1231.37 ms 7.78 ms
0d9949d+dirty 1211.38 ms 1219.67 ms 8.29 ms
04207c4+dirty 1191.27 ms 1189.78 ms -1.48 ms
3ce5254+dirty 1219.93 ms 1221.90 ms 1.96 ms
4953e94+dirty 1212.06 ms 1214.83 ms 2.77 ms
2c735cc+dirty 1229.67 ms 1221.50 ms -8.17 ms
a50b33d+dirty 1197.74 ms 1197.17 ms -0.57 ms
df5d108+dirty 1225.90 ms 1220.14 ms -5.76 ms

App size

Revision Plain With Sentry Diff
7ac3378+dirty 3.38 MiB 4.76 MiB 1.38 MiB
4b87b12+dirty 3.38 MiB 4.77 MiB 1.39 MiB
890d145+dirty 3.38 MiB 4.77 MiB 1.38 MiB
0d9949d+dirty 3.38 MiB 4.76 MiB 1.38 MiB
04207c4+dirty 3.38 MiB 4.76 MiB 1.38 MiB
3ce5254+dirty 3.38 MiB 4.76 MiB 1.38 MiB
4953e94+dirty 3.38 MiB 4.73 MiB 1.35 MiB
2c735cc+dirty 3.38 MiB 4.74 MiB 1.35 MiB
a50b33d+dirty 3.38 MiB 4.73 MiB 1.35 MiB
df5d108+dirty 3.38 MiB 4.73 MiB 1.35 MiB

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 22, 2026

Android (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 367.63 ms 390.59 ms 22.96 ms
Size 43.94 MiB 49.00 MiB 5.06 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
4b87b12+dirty 356.23 ms 399.86 ms 43.63 ms
0d9949d+dirty 414.88 ms 428.68 ms 13.81 ms
3ce5254+dirty 373.90 ms 427.84 ms 53.94 ms
3d377b5+dirty 425.38 ms 440.67 ms 15.30 ms
3817909+dirty 357.52 ms 391.52 ms 34.00 ms
4953e94+dirty 398.80 ms 431.81 ms 33.01 ms
5fe1c6c+dirty 365.84 ms 408.62 ms 42.78 ms
890d145+dirty 486.42 ms 514.85 ms 28.43 ms
7d6fd3a+dirty 435.06 ms 458.78 ms 23.72 ms
a50b33d+dirty 353.21 ms 398.48 ms 45.27 ms

App size

Revision Plain With Sentry Diff
4b87b12+dirty 43.94 MiB 49.00 MiB 5.06 MiB
0d9949d+dirty 43.94 MiB 48.99 MiB 5.05 MiB
3ce5254+dirty 43.94 MiB 48.98 MiB 5.04 MiB
3d377b5+dirty 43.94 MiB 49.00 MiB 5.06 MiB
3817909+dirty 43.94 MiB 48.94 MiB 5.00 MiB
4953e94+dirty 43.94 MiB 48.94 MiB 5.00 MiB
5fe1c6c+dirty 43.94 MiB 49.00 MiB 5.06 MiB
890d145+dirty 43.94 MiB 49.00 MiB 5.06 MiB
7d6fd3a+dirty 43.94 MiB 49.00 MiB 5.06 MiB
a50b33d+dirty 43.94 MiB 48.94 MiB 5.00 MiB

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 22, 2026

iOS (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1226.25 ms 1229.92 ms 3.67 ms
Size 3.38 MiB 4.77 MiB 1.39 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
7ac3378+dirty 1202.35 ms 1198.31 ms -4.04 ms
4b87b12+dirty 1199.49 ms 1199.78 ms 0.29 ms
890d145+dirty 1212.98 ms 1220.10 ms 7.12 ms
0d9949d+dirty 1203.94 ms 1202.27 ms -1.67 ms
04207c4+dirty 1228.55 ms 1226.04 ms -2.51 ms
3ce5254+dirty 1217.70 ms 1224.69 ms 6.99 ms
4953e94+dirty 1217.41 ms 1223.53 ms 6.12 ms
2c735cc+dirty 1223.33 ms 1224.38 ms 1.04 ms
a50b33d+dirty 1207.11 ms 1212.10 ms 5.00 ms
df5d108+dirty 1207.34 ms 1210.50 ms 3.16 ms

App size

Revision Plain With Sentry Diff
7ac3378+dirty 3.38 MiB 4.76 MiB 1.38 MiB
4b87b12+dirty 3.38 MiB 4.77 MiB 1.39 MiB
890d145+dirty 3.38 MiB 4.77 MiB 1.38 MiB
0d9949d+dirty 3.38 MiB 4.76 MiB 1.38 MiB
04207c4+dirty 3.38 MiB 4.76 MiB 1.38 MiB
3ce5254+dirty 3.38 MiB 4.76 MiB 1.38 MiB
4953e94+dirty 3.38 MiB 4.73 MiB 1.35 MiB
2c735cc+dirty 3.38 MiB 4.74 MiB 1.35 MiB
a50b33d+dirty 3.38 MiB 4.73 MiB 1.35 MiB
df5d108+dirty 3.38 MiB 4.73 MiB 1.35 MiB

antonis and others added 2 commits April 22, 2026 18:15
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge Triggers the full CI test suite

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant