Skip to content

Cirrus Labs runners for other important workflows (where it makes sense to do so) + Ubuntu update (22.04 -> 24.04)#5696

Open
alwx wants to merge 20 commits intomainfrom
alwx/experiment/cirrus-labs-for-everythin
Open

Cirrus Labs runners for other important workflows (where it makes sense to do so) + Ubuntu update (22.04 -> 24.04)#5696
alwx wants to merge 20 commits intomainfrom
alwx/experiment/cirrus-labs-for-everythin

Conversation

@alwx
Copy link
Contributor

@alwx alwx commented Feb 23, 2026

📢 Type of change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring

📜 Description

Hopefully that last bit of Cirrus Labs runners project — this time it's about

  1. moving to CL Ubuntu runners where it makes sense
  2. moving sample-application-expo.yml and sample-application.yml back to GH Ubuntu runners (for the sake of consuming less resources)
  3. replacing the old Sequoia to Tahoe where it's possible
  4. moving more workflows to Cirrus Labs
  5. sample-applicaty

💡 Motivation and Context

Speed!

📝 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

@alwx alwx self-assigned this Feb 23, 2026
@alwx alwx added CI ready-to-merge Triggers the full CI test suite labels Feb 23, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Feb 23, 2026

Semver Impact of This PR

None (no version bump detected)

📋 Changelog Preview

This is how your changes will appear in the changelog.
Entries from this PR are highlighted with a left border (blockquote style).


  • Cirrus Labs runners for other important workflows (where it makes sense to do so) + Ubuntu update (22.04 -> 24.04) by alwx in #5696
  • chore(deps): update JavaScript SDK to v10.40.0 by github-actions in #5715
  • ci: Cancel in-progress CI jobs when a PR is closed or merged by antonis in #5725

🤖 This preview updates automatically when you update the PR.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 23, 2026

Android (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 427.75 ms 518.04 ms 90.29 ms
Size 43.75 MiB 48.46 MiB 4.71 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
ec14be7+dirty 403.50 ms 411.46 ms 7.96 ms
e76d0d3+dirty 404.18 ms 411.53 ms 7.35 ms
785ffb1 471.92 ms 460.96 ms -10.96 ms
ff5a06a+dirty 405.97 ms 439.24 ms 33.27 ms
6416d6c+dirty 407.30 ms 422.00 ms 14.70 ms
eec00c2+dirty 447.08 ms 469.04 ms 21.96 ms
7480abe+dirty 411.60 ms 405.81 ms -5.78 ms
c08359e 421.87 ms 445.37 ms 23.50 ms
64cd15c 439.02 ms 427.63 ms -11.39 ms
af9331b 449.77 ms 479.20 ms 29.43 ms

App size

Revision Plain With Sentry Diff
ec14be7+dirty 17.75 MiB 19.69 MiB 1.94 MiB
e76d0d3+dirty 17.75 MiB 19.71 MiB 1.96 MiB
785ffb1 17.75 MiB 20.15 MiB 2.41 MiB
ff5a06a+dirty 43.75 MiB 48.05 MiB 4.29 MiB
6416d6c+dirty 43.75 MiB 48.05 MiB 4.30 MiB
eec00c2+dirty 43.75 MiB 48.05 MiB 4.29 MiB
7480abe+dirty 17.75 MiB 19.68 MiB 1.94 MiB
c08359e 17.75 MiB 20.15 MiB 2.41 MiB
64cd15c 17.75 MiB 20.15 MiB 2.41 MiB
af9331b 17.75 MiB 19.68 MiB 1.94 MiB

@github-actions
Copy link
Contributor

github-actions bot commented Feb 23, 2026

iOS (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1221.33 ms 1220.72 ms -0.61 ms
Size 3.38 MiB 4.78 MiB 1.40 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
ea3e26e+dirty 1229.13 ms 1228.46 ms -0.67 ms
80e4616+dirty 1221.32 ms 1225.64 ms 4.32 ms
818a608+dirty 1205.76 ms 1208.00 ms 2.24 ms
77061ed+dirty 1233.16 ms 1234.88 ms 1.71 ms
bef3709+dirty 1222.07 ms 1220.24 ms -1.83 ms
a206511+dirty 1185.00 ms 1186.35 ms 1.35 ms
74979ac+dirty 1210.49 ms 1213.31 ms 2.82 ms
a2bb688+dirty 1223.53 ms 1232.90 ms 9.37 ms
8a868fe+dirty 1221.50 ms 1230.78 ms 9.28 ms
d590428+dirty 1211.77 ms 1220.51 ms 8.75 ms

App size

Revision Plain With Sentry Diff
ea3e26e+dirty 3.41 MiB 4.58 MiB 1.17 MiB
80e4616+dirty 3.38 MiB 4.60 MiB 1.22 MiB
818a608+dirty 2.63 MiB 3.91 MiB 1.28 MiB
77061ed+dirty 2.63 MiB 3.98 MiB 1.34 MiB
bef3709+dirty 3.38 MiB 4.78 MiB 1.40 MiB
a206511+dirty 3.41 MiB 4.67 MiB 1.25 MiB
74979ac+dirty 3.38 MiB 4.60 MiB 1.22 MiB
a2bb688+dirty 2.63 MiB 3.99 MiB 1.36 MiB
8a868fe+dirty 3.38 MiB 4.60 MiB 1.22 MiB
d590428+dirty 3.38 MiB 4.78 MiB 1.39 MiB

@lucas-zimerman
Copy link
Collaborator

The PR is looking good! I left a few topics in regard to the number 12 and also the possibility on reusing.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 23, 2026

iOS (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1219.14 ms 1222.35 ms 3.21 ms
Size 3.38 MiB 4.78 MiB 1.40 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
ea3e26e+dirty 1216.61 ms 1214.15 ms -2.47 ms
80e4616+dirty 1206.90 ms 1205.94 ms -0.96 ms
818a608+dirty 1218.84 ms 1223.18 ms 4.34 ms
77061ed+dirty 1210.77 ms 1218.45 ms 7.68 ms
bef3709+dirty 1217.79 ms 1225.33 ms 7.54 ms
a206511+dirty 1225.02 ms 1223.74 ms -1.28 ms
74979ac+dirty 1212.33 ms 1212.54 ms 0.21 ms
a2bb688+dirty 1244.82 ms 1238.60 ms -6.22 ms
8a868fe+dirty 1206.85 ms 1215.04 ms 8.19 ms
d590428+dirty 1221.23 ms 1225.27 ms 4.03 ms

App size

Revision Plain With Sentry Diff
ea3e26e+dirty 3.41 MiB 4.58 MiB 1.17 MiB
80e4616+dirty 3.38 MiB 4.60 MiB 1.22 MiB
818a608+dirty 3.19 MiB 4.48 MiB 1.29 MiB
77061ed+dirty 3.19 MiB 4.54 MiB 1.36 MiB
bef3709+dirty 3.38 MiB 4.78 MiB 1.40 MiB
a206511+dirty 3.41 MiB 4.67 MiB 1.25 MiB
74979ac+dirty 3.38 MiB 4.60 MiB 1.22 MiB
a2bb688+dirty 3.19 MiB 4.56 MiB 1.37 MiB
8a868fe+dirty 3.38 MiB 4.60 MiB 1.22 MiB
d590428+dirty 3.38 MiB 4.78 MiB 1.39 MiB

@github-actions
Copy link
Contributor

github-actions bot commented Feb 23, 2026

Android (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 442.67 ms 480.98 ms 38.31 ms
Size 43.94 MiB 49.34 MiB 5.40 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
785ffb1+dirty 380.65 ms 451.83 ms 71.18 ms
59d1977+dirty 366.15 ms 393.21 ms 27.06 ms
95aaf8a+dirty 342.82 ms 393.75 ms 50.93 ms
5ee3314+dirty 358.69 ms 394.00 ms 35.31 ms
b1579bc+dirty 391.87 ms 456.26 ms 64.39 ms
4052277+dirty 369.90 ms 381.16 ms 11.26 ms
4a17c8f+dirty 368.54 ms 381.43 ms 12.89 ms
eb07ba3+dirty 419.49 ms 482.12 ms 62.63 ms
cdf7e97+dirty 389.79 ms 418.13 ms 28.34 ms
93137d1+dirty 367.58 ms 434.94 ms 67.36 ms

App size

Revision Plain With Sentry Diff
785ffb1+dirty 7.15 MiB 8.42 MiB 1.27 MiB
59d1977+dirty 43.94 MiB 49.22 MiB 5.29 MiB
95aaf8a+dirty 7.15 MiB 8.41 MiB 1.26 MiB
5ee3314+dirty 7.15 MiB 8.43 MiB 1.28 MiB
b1579bc+dirty 43.94 MiB 49.27 MiB 5.33 MiB
4052277+dirty 43.94 MiB 49.38 MiB 5.44 MiB
4a17c8f+dirty 43.94 MiB 48.82 MiB 4.88 MiB
eb07ba3+dirty 7.15 MiB 8.42 MiB 1.27 MiB
cdf7e97+dirty 43.94 MiB 49.22 MiB 5.29 MiB
93137d1+dirty 7.15 MiB 8.43 MiB 1.28 MiB

branches:
- main
- alwx/ci/macos-tahoe-cl-runners
- alwx/experiment/cirrus-labs-for-everythin
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Experimental branch left in testflight trigger

Medium Severity

The branch alwx/experiment/cirrus-labs-for-everythin was added as a push trigger for the Testflight upload workflow. This appears to be a temporary developer branch used for testing CI changes and was likely not intended to remain in the final PR. The old experimental branch alwx/ci/macos-tahoe-cl-runners was supposed to be removed (as noted in the PR discussion), but instead it was replaced with another experimental branch. This will trigger Testflight uploads on pushes to that branch, consuming CI resources unnecessarily.

Fix in Cursor Fix in Web

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gonna be removed before merge!

@alwx alwx requested a review from lucas-zimerman February 24, 2026 14:14
Copy link
Contributor

@itaybre itaybre left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think everything should run on Cirrus, specially if stability / speed is not important.

For example, danger, codeql, benchmarking, dependencies don't seem to benefit from running on cirrus runners.

Runners are a limited resource, all the organization shares

@alwx alwx changed the title Cirrus Labs runners for all the other workflows + Ubuntu update (22.04 -> 24.04) Cirrus Labs runners for all the other important workflows + Ubuntu update (22.04 -> 24.04) Feb 26, 2026
@alwx alwx force-pushed the alwx/experiment/cirrus-labs-for-everythin branch from f6cacc8 to 8ddab36 Compare February 26, 2026 09:57
runs-on: ["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]
- platform: android
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:22.04", "runner_group_id:10"]
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can also revert the Android e2e, sample and expo-sample runners back to GH Ubuntu like 8ddab36 and see how this goes. The Cirrus lab runners are way faster but we may end up being queued if more thing run on them.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would say we can keep them for e2e since the benifit is pretty significant there but maybe use GH Ubuntu for sample and expo sample. what do you think, @antonis ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good @alwx 👍

@alwx alwx force-pushed the alwx/experiment/cirrus-labs-for-everythin branch from 56ca764 to aaa3ffe Compare February 26, 2026 10:03
@alwx alwx changed the title Cirrus Labs runners for all the other important workflows + Ubuntu update (22.04 -> 24.04) Cirrus Labs runners for other important workflows (where it makes sense to do so) + Ubuntu update (22.04 -> 24.04) Feb 26, 2026
@alwx alwx requested review from antonis and itaybre February 26, 2026 10:04
@lucas-zimerman
Copy link
Collaborator

There is some issues on swiftlint, maybe updating it could help.

- LINUX_BIN="https://github.com/realm/SwiftLint/releases/download/0.61.0/swiftlint_linux_amd64.zip"
+ LINUX_BIN="https://github.com/realm/SwiftLint/releases/download/0.63.2/swiftlint_linux_amd64.zip"
- LINUX_SHA="sha256:02f4f580bbb27fb618dbfa24ce2f14c926461c85c26941289f58340151b63ae4"
+ LINUX_SHA="sha256:dd1017cfd20a1457f264590bcb5875a6ee06cd75b9a9d4f77cd43a552499143b"
- DARWIN_BIN="https://github.com/realm/SwiftLint/releases/download/0.61.0/portable_swiftlint.zip"
+ DARWIN_BIN="https://github.com/realm/SwiftLint/releases/download/0.63.2/portable_swiftlint.zip"
- DARWIN_SHA="sha256:2342f3784307a02117e18f745fcd350c6acc6cab0e521c0c0e01c32a53a3b274"
+ DARWIN_SHA="sha256:c59a405c85f95b92ced677a500804e081596a4cae4a6a485af76065557d6ed29"

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

- prohibited_super_call
- redundant_nil_coalescing
- redundant_optional_initialization
- implicit_optional_initialization
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Invalid SwiftLint rule name breaks lint check

High Severity

implicit_optional_initialization is not a valid SwiftLint rule identifier. The original rule redundant_optional_initialization still exists and is active in SwiftLint 0.63.2 — it was never renamed or deprecated. Using a nonexistent rule name in the only_rules list will either cause SwiftLint to emit a configuration warning (which may fail CI under --strict mode in swiftlint.sh), or silently drop the check, removing a previously enforced lint rule.

Fix in Cursor Fix in Web

@alwx alwx enabled auto-merge (squash) February 26, 2026 18:43
Comment on lines +135 to 137
- run: corepack enable
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The bash command in the Check lock file integrity step has incorrect syntax. It's missing a space after [ and uses the numeric operator -eq for string comparison.
Severity: HIGH

Suggested Fix

Correct the bash syntax in the run step. Add a space after the opening bracket and use the string comparison operator = instead of -eq. The command should be [ "$(diff yarn.lock.initial yarn.lock)" = "" ].

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: .github/workflows/buildandtest.yml#L135-L137

Potential issue: The `Check lock file integrity` step in the `buildandtest.yml` workflow
contains an invalid bash command: `["$(diff yarn.lock.initial yarn.lock)" -eq ""]`. This
command has two syntax errors: a missing space after the opening bracket `[` and the use
of the numeric comparison operator `-eq` for strings. The correct syntax should be `[
"$(diff yarn.lock.initial yarn.lock)" = "" ]`. This syntax error will cause the shell to
fail with a "command not found" error, leading to the failure of the
`job_check_integrity` job and blocking the entire CI pipeline.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI ready-to-merge Triggers the full CI test suite skip-changelog

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants