Skip to content

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

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

ci: Revert CI runners from Cirrus Labs back to GitHub-hosted#6032
antonis wants to merge 3 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 407.06 ms 413.86 ms 6.80 ms
Size 43.75 MiB 48.14 MiB 4.39 MiB

Baseline results on branch: main

Startup times

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

@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.8.0 (83) 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 1216.24 ms 1218.81 ms 2.57 ms
Size 3.38 MiB 4.77 MiB 1.39 MiB

Baseline results on branch: main

Startup times

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 22, 2026

Android (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 373.85 ms 412.73 ms 38.88 ms
Size 43.94 MiB 49.00 MiB 5.06 MiB

Baseline results on branch: main

Startup times

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 22, 2026

iOS (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1216.82 ms 1220.70 ms 3.89 ms
Size 3.38 MiB 4.77 MiB 1.39 MiB

Baseline results on branch: main

Startup times

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>
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