Skip to content

Commit c85adc2

Browse files
Merge branch 'main' into antonis/bump-tar
2 parents a4f95b5 + 3b28852 commit c85adc2

21 files changed

Lines changed: 671 additions & 255 deletions

.github/workflows/buildandtest.yml

Lines changed: 50 additions & 29 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
@@ -123,39 +144,39 @@ jobs:
123144
- name: Build
124145
run: yarn build
125146
- name: Archive dist
126-
uses: actions/upload-artifact@v6
147+
uses: actions/upload-artifact@v7
127148
with:
128149
name: dist
129150
path: packages/core/dist
130151
- name: Archive ts3.8
131-
uses: actions/upload-artifact@v6
152+
uses: actions/upload-artifact@v7
132153
with:
133154
name: ts3.8
134155
path: packages/core/ts3.8
135156
- name: Archive Expo Plugin
136-
uses: actions/upload-artifact@v6
157+
uses: actions/upload-artifact@v7
137158
with:
138159
name: expo-plugin
139160
path: packages/core/plugin/build
140161
- name: Pack
141162
run: yarn build:tarball
142163
- name: Archive Artifacts
143-
uses: actions/upload-artifact@v6
164+
uses: actions/upload-artifact@v7
144165
with:
145166
name: ${{ github.sha }}
146167
path: |
147168
${{ github.workspace }}/packages/core/*.tgz
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
@@ -165,12 +186,12 @@ jobs:
165186
- name: Install Dependencies
166187
run: yarn install
167188
- name: Download dist
168-
uses: actions/download-artifact@v7
189+
uses: actions/download-artifact@v8
169190
with:
170191
name: dist
171192
path: packages/core/dist
172193
- name: Download ts3.8
173-
uses: actions/download-artifact@v7
194+
uses: actions/download-artifact@v8
174195
with:
175196
name: ts3.8
176197
path: packages/core/ts3.8
@@ -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
@@ -196,12 +217,12 @@ jobs:
196217
- name: Install Dependencies
197218
run: yarn install
198219
- name: Download dist
199-
uses: actions/download-artifact@v7
220+
uses: actions/download-artifact@v8
200221
with:
201222
name: dist
202223
path: packages/core/dist
203224
- name: Download Expo Plugin
204-
uses: actions/download-artifact@v7
225+
uses: actions/download-artifact@v8
205226
with:
206227
name: expo-plugin
207228
path: packages/core/plugin/build
@@ -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/cancel-pr-workflows.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
runs-on: ubuntu-latest
1111
steps:
1212
- name: Cancel in-progress workflow runs
13-
uses: actions/github-script@v7
13+
uses: actions/github-script@v8
1414
with:
1515
script: |
1616
const { owner, repo } = context.repo;

.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: 9 additions & 9 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'
@@ -299,15 +299,15 @@ jobs:
299299

300300
- name: Upload App
301301
if: matrix.build-type == 'production'
302-
uses: actions/upload-artifact@v6
302+
uses: actions/upload-artifact@v7
303303
with:
304304
name: ${{ matrix.rn-version }}-${{ matrix.rn-architecture }}-${{ matrix.engine }}-${{ matrix.platform }}-${{ matrix.build-type }}-${{ matrix.ios-use-frameworks }}-app-package
305305
path: dev-packages/e2e-tests/RnDiffApp.ap*
306306
retention-days: 1
307307

308308
- name: Upload logs
309309
if: ${{ always() }}
310-
uses: actions/upload-artifact@v6
310+
uses: actions/upload-artifact@v7
311311
with:
312312
name: rn-build-logs-${{ matrix.rn-version }}-${{ matrix.rn-architecture }}-${{ matrix.engine }}-${{ matrix.platform }}-${{ matrix.build-type }}-${{ matrix.ios-use-frameworks }}
313313
path: dev-packages/e2e-tests/react-native-versions/${{ matrix.rn-version }}/RnDiffApp/ios/*.log
@@ -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
@@ -357,7 +357,7 @@ jobs:
357357

358358
- name: Download App Package
359359
if: matrix.build-type == 'production'
360-
uses: actions/download-artifact@v7
360+
uses: actions/download-artifact@v8
361361
with:
362362
name: ${{ matrix.rn-version }}-${{ matrix.rn-architecture }}-${{ matrix.engine }}-${{ matrix.platform }}-${{ matrix.build-type }}-${{ matrix.ios-use-frameworks }}-app-package
363363
path: dev-packages/e2e-tests
@@ -423,7 +423,7 @@ jobs:
423423
if: ${{ matrix.platform == 'ios' }}
424424
run: xcrun simctl list devices available
425425

426-
- uses: futureware-tech/simulator-action@dab10d813144ef59b48d401cd95da151222ef8cd # pin@v4
426+
- uses: futureware-tech/simulator-action@e89aa8f93d3aec35083ff49d2854d07f7186f7f5 # pin@v5
427427
if: ${{ matrix.platform == 'ios' }}
428428
with:
429429
model: ${{ env.IOS_DEVICE }}
@@ -438,7 +438,7 @@ jobs:
438438

439439
- name: Upload logs
440440
if: ${{ always() }}
441-
uses: actions/upload-artifact@v6
441+
uses: actions/upload-artifact@v7
442442
with:
443443
name: ${{ matrix.rn-version }}-${{ matrix.rn-architecture }}-${{ matrix.engine }}-${{ matrix.platform }}-${{ matrix.build-type }}-${{ matrix.ios-use-frameworks }}-logs
444444
path: |

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

0 commit comments

Comments
 (0)