Skip to content

Commit c1cade4

Browse files
alwxoz-agent
andauthored
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 all the other workflows + Ubuntu update (22.04 -> 24.04) * Corepack fix * Test fixes * Swift fixes * Trying a few things * Trying a few things * Ruby change * Swiftly change * Small-ish fixes and update-deps.yaml refactoring * Updated; update-deps.yml is back to how it was * reverts back some workflows Co-Authored-By: Oz <oz-agent@warp.dev> * Runner group changes * sample-application-expo.yml and sample-application.yml are back to ubuntu runners * Small fix * Small fix (2) * Build and Test step fix * Swiftly update * Swiftly update --------- Co-authored-by: Oz <oz-agent@warp.dev>
1 parent 45cf252 commit c1cade4

File tree

10 files changed

+104
-56
lines changed

10 files changed

+104
-56
lines changed

.github/workflows/buildandtest.yml

Lines changed: 42 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ jobs:
1717

1818
job_test:
1919
name: Test
20-
runs-on: ubuntu-latest
20+
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
2121
needs: [diff_check]
2222
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
2323
steps:
2424
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
25-
- run: npm i -g corepack
25+
- run: corepack enable
2626
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
2727
with:
2828
package-manager-cache: false
@@ -36,12 +36,12 @@ jobs:
3636

3737
job_lint:
3838
name: Lint
39-
runs-on: ubuntu-latest
39+
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
4040
needs: [diff_check]
4141
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
4242
steps:
4343
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
44-
- run: npm i -g corepack
44+
- run: corepack enable
4545
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
4646
with:
4747
package-manager-cache: false
@@ -66,28 +66,49 @@ jobs:
6666
clang --version
6767
clang-format --version
6868
69-
- name: Install Swiftly
69+
- name: Install Swiftly and Swift
7070
run: |
71-
SWIFTLY_FILE="swiftly-$(uname -m).tar.gz"
72-
curl -sL https://download.swift.org/swiftly/linux/swiftly-x86_64.tar.gz -o $SWIFTLY_FILE
73-
tar zxf $SWIFTLY_FILE
71+
# Install Swift dependencies first
72+
sudo apt-get update
73+
sudo apt-get -y install libcurl4-openssl-dev libz3-dev libncurses-dev libedit-dev libxml2-dev
74+
75+
ARCH=$(uname -m)
76+
SWIFTLY_FILE="swiftly-${ARCH}.tar.gz"
77+
curl -sL "https://download.swift.org/swiftly/linux/swiftly-${ARCH}.tar.gz" -o "$SWIFTLY_FILE"
78+
tar zxf "$SWIFTLY_FILE"
7479
7580
./swiftly init --quiet-shell-followup
7681
. "${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh"
7782
hash -r
78-
sudo apt-get -y install libcurl4-openssl-dev
83+
84+
# Install Swift 6.0 (compatible with SwiftLint 0.63.2)
85+
swiftly install 6.0
86+
swift --version
87+
88+
# Export Swift toolchain path for SwiftLint's SourceKit
89+
SWIFT_BIN=$(which swift)
90+
SWIFT_TOOLCHAIN=$(dirname $(dirname "$SWIFT_BIN"))
91+
SOURCEKIT_PATH=$(find "${SWIFT_TOOLCHAIN}" -name "libsourcekitdInProc.so" -print -quit 2>/dev/null)
92+
if [ -n "$SOURCEKIT_PATH" ]; then
93+
echo "LINUX_SOURCEKIT_LIB_PATH=$(dirname "$SOURCEKIT_PATH")" >> $GITHUB_ENV
94+
else
95+
echo "ERROR: libsourcekitdInProc.so not found under ${SWIFT_TOOLCHAIN}"
96+
exit 1
97+
fi
7998
8099
- name: Lint
81-
run: yarn lint
100+
run: |
101+
. "${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh"
102+
yarn lint
82103
83104
job_check_integrity:
84105
name: Check package integrity
85-
runs-on: ubuntu-latest
106+
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
86107
needs: [diff_check]
87108
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
88109
steps:
89110
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
90-
- run: npm i -g corepack
111+
- run: corepack enable
91112
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
92113
with:
93114
package-manager-cache: false
@@ -102,16 +123,16 @@ jobs:
102123
run: yarn install
103124
- name: Check lock file integrity
104125
run: |
105-
["$(diff yarn.lock.initial yarn.lock)" -eq ""]
126+
[ "$(diff yarn.lock.initial yarn.lock)" = "" ]
106127
107128
job_build:
108129
name: Build
109-
runs-on: ubuntu-latest
130+
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
110131
needs: [diff_check]
111132
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
112133
steps:
113134
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
114-
- run: npm i -g corepack
135+
- run: corepack enable
115136
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
116137
with:
117138
package-manager-cache: false
@@ -148,14 +169,14 @@ jobs:
148169
149170
job_type_check:
150171
name: Type Check Typescript 3.8
151-
runs-on: ubuntu-latest
172+
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
152173
needs: [job_build, diff_check]
153174
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
154175
env:
155176
YARN_ENABLE_IMMUTABLE_INSTALLS: false
156177
steps:
157178
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
158-
- run: npm i -g corepack
179+
- run: corepack enable
159180
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
160181
with:
161182
package-manager-cache: false
@@ -181,12 +202,12 @@ jobs:
181202
run: yarn type-check
182203
job_circular_dep_check:
183204
name: Circular Dependency Check
184-
runs-on: ubuntu-latest
205+
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
185206
needs: [job_build, diff_check]
186207
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
187208
steps:
188209
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
189-
- run: npm i -g corepack
210+
- run: corepack enable
190211
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
191212
with:
192213
package-manager-cache: false
@@ -210,7 +231,7 @@ jobs:
210231

211232
job_bundle:
212233
name: Bundle
213-
runs-on: ubuntu-latest
234+
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
214235
needs: [job_test, job_build, diff_check]
215236
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
216237
strategy:
@@ -221,7 +242,7 @@ jobs:
221242
dev: [true, false]
222243
steps:
223244
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
224-
- run: npm i -g corepack
245+
- run: corepack enable
225246
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
226247
with:
227248
package-manager-cache: false

.github/workflows/codegen.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
uses: ./.github/workflows/skip-ci.yml
1717

1818
codegen:
19-
runs-on: ubuntu-latest
19+
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
2020
needs: [diff_check]
2121
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
2222
strategy:
@@ -36,7 +36,7 @@ jobs:
3636
--targetPlatform ios
3737
steps:
3838
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
39-
- run: npm i -g corepack
39+
- run: corepack enable
4040
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
4141
with:
4242
package-manager-cache: false

.github/workflows/e2e-v2.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
name: iOS
5353
appPlain: performance-tests/test-app-plain.ipa
5454
- platform: android
55-
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:22.04", "runner_group_id:10"]
55+
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
5656
name: Android
5757
appPlain: performance-tests/TestAppPlain/android/app/build/outputs/apk/release/app-release.apk
5858
steps:
@@ -205,7 +205,7 @@ jobs:
205205
rn-version: '0.84.0'
206206
runs-on: ["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]
207207
- platform: android
208-
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:22.04", "runner_group_id:10"]
208+
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
209209
exclude:
210210
# exclude JSC for new RN versions (keeping the matrix manageable)
211211
- rn-version: '0.84.0'
@@ -332,9 +332,9 @@ jobs:
332332
include:
333333
- platform: ios
334334
rn-version: '0.84.0'
335-
runs-on: macos-26
335+
runs-on: ["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]
336336
- platform: android
337-
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:22.04", "runner_group_id:10"]
337+
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
338338

339339
steps:
340340
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

.github/workflows/native-tests.yml

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@ jobs:
2626

2727
test-ios:
2828
name: ios
29-
runs-on: macos-15
29+
runs-on: ["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]
3030
needs: [diff_check]
3131
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
3232
steps:
3333
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
3434

3535
- name: Enable Corepack
36-
run: npm i -g corepack
36+
run: corepack enable
3737
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
3838
with:
3939
package-manager-cache: false
@@ -44,6 +44,16 @@ jobs:
4444
- name: Install SDK JS Dependencies
4545
run: yarn install
4646

47+
- uses: ruby/setup-ruby@v1
48+
with:
49+
ruby-version: '3.3.0'
50+
env:
51+
# Disable rbenv to avoid .ruby-version conflicts
52+
RBENV_VERSION: system
53+
54+
- name: Install CocoaPods
55+
run: gem install cocoapods
56+
4757
- name: Install App Pods
4858
working-directory: packages/core/RNSentryCocoaTester
4959
run: pod install
@@ -56,6 +66,10 @@ jobs:
5666
env:
5767
SCHEME: RNSentryCocoaTester
5868
CONFIGURATION: Release
69+
# Fix for Xcode 26+ with MetalToolchain: use default Xcode toolchain to avoid
70+
# missing Swift compatibility libraries (swiftCompatibility56, etc.)
71+
# See: https://github.com/actions/runner-images/issues/13135
72+
TOOLCHAINS: com.apple.dt.toolchain.XcodeDefault
5973
run: |
6074
# Find first available iPhone simulator from latest iOS runtime
6175
DEVICE_ID=$(xcrun simctl list devices available iPhone -j | jq -r '
@@ -83,7 +97,7 @@ jobs:
8397
8498
test-android:
8599
name: android
86-
runs-on: ubuntu-latest
100+
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
87101
needs: [diff_check]
88102
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
89103
steps:

.github/workflows/release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ permissions:
1818

1919
jobs:
2020
release:
21-
runs-on: ubuntu-latest
21+
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
2222
name: Release a new version
2323
steps:
2424
- name: Get auth token
@@ -33,7 +33,7 @@ jobs:
3333
token: ${{ steps.token.outputs.token }}
3434
fetch-depth: 0
3535

36-
- run: npm i -g corepack
36+
- run: corepack enable
3737

3838
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
3939
with:

.github/workflows/sample-application-expo.yml

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,24 +43,25 @@ jobs:
4343
build-type: ['dev', 'production']
4444
include:
4545
- platform: ios
46-
runs-on: ["ghcr.io/cirruslabs/macos-sequoia-xcode:16.4", "runner_group_id:10"]
46+
runs-on: ["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]
4747
- platform: android
48-
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:22.04", "runner_group_id:10"]
48+
runs-on: ubuntu-latest
4949
- platform: web
50-
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:22.04", "runner_group_id:10"]
50+
runs-on: ubuntu-latest
5151
exclude:
5252
- platform: 'android'
5353
ios-use-frameworks: 'dynamic-frameworks'
5454
steps:
5555
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
5656

57+
- name: Enable Corepack (NPM)
58+
if: ${{ matrix.platform != 'ios' }}
59+
run: npm i -g corepack
60+
5761
- name: Enable Corepack
62+
if: ${{ matrix.platform == 'ios' }}
5863
run: corepack enable
5964

60-
- name: Install Ninja
61-
if: ${{ matrix.platform == 'android' }}
62-
run: sudo apt-get update && sudo apt-get install -y ninja-build
63-
6465
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
6566
with:
6667
package-manager-cache: false
@@ -125,6 +126,11 @@ jobs:
125126
- name: Build iOS App
126127
if: ${{ matrix.platform == 'ios' }}
127128
working-directory: samples/expo/ios
129+
env:
130+
# Fix for Xcode 26+ with MetalToolchain: use default Xcode toolchain to avoid
131+
# missing Swift compatibility libraries (swiftCompatibility56, etc.)
132+
# See: https://github.com/actions/runner-images/issues/13135
133+
TOOLCHAINS: com.apple.dt.toolchain.XcodeDefault
128134
run: |
129135
[[ "${{ matrix.build-type }}" == "production" ]] && CONFIG='Release' || CONFIG='Debug'
130136
echo "Building $CONFIG"

0 commit comments

Comments
 (0)