Cirrus Labs runners for other important workflows (where it makes sense to do so) + Ubuntu update (22.04 -> 24.04)#5696
Cirrus Labs runners for other important workflows (where it makes sense to do so) + Ubuntu update (22.04 -> 24.04)#5696
Conversation
Semver Impact of This PR⚪ None (no version bump detected) 📋 Changelog PreviewThis is how your changes will appear in the changelog.
🤖 This preview updates automatically when you update the PR. |
Android (legacy) Performance metrics 🚀
|
| 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 |
iOS (legacy) Performance metrics 🚀
|
| 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 |
|
The PR is looking good! I left a few topics in regard to the number 12 and also the possibility on reusing. |
iOS (new) Performance metrics 🚀
|
| 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 |
Android (new) Performance metrics 🚀
|
| 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 |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
gonna be removed before merge!
itaybre
left a comment
There was a problem hiding this comment.
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
f6cacc8 to
8ddab36
Compare
| 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"] |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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 ?
Co-Authored-By: Oz <oz-agent@warp.dev>
56ca764 to
aaa3ffe
Compare
|
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" |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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.
| - run: corepack enable | ||
| - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6 | ||
| with: |
There was a problem hiding this comment.
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.


📢 Type of change
📜 Description
Hopefully that last bit of Cirrus Labs runners project — this time it's about
💡 Motivation and Context
Speed!
📝 Checklist
sendDefaultPIIis enabled🔮 Next steps