22
22
access_token : ${{ github.token }}
23
23
24
24
metrics :
25
- runs-on : macos-latest
25
+ runs-on : ${{ matrix.runs-on }}
26
26
strategy :
27
27
# we want that the matrix keeps running, default is to cancel them if it fails.
28
28
fail-fast : false
31
31
platform : ["ios", "android"]
32
32
include :
33
33
- platform : ios
34
+ runs-on : macos-latest
34
35
name : iOS
35
36
appPlain : test/perf/test-app-plain.ipa
36
37
- platform : android
38
+ runs-on : ubuntu-latest
37
39
name : Android
38
40
appPlain : test/perf/TestAppPlain/android/app/build/outputs/apk/release/app-release.apk
39
41
steps :
45
47
with :
46
48
java-version : ' 17'
47
49
distribution : " adopt"
50
+ - name : Gradle cache
51
+ uses : gradle/gradle-build-action@v2
48
52
- name : Install Global Dependencies
49
53
run : yarn global add react-native-cli @sentry/cli yalc
50
54
- uses : actions/cache@v3
@@ -141,7 +145,7 @@ jobs:
141
145
142
146
react-native-build :
143
147
name : Build RN ${{ matrix.rn-version }} ${{ matrix.rn-architecture }} ${{ matrix.engine }} ${{ matrix.platform }} ${{ matrix.build-type }} ${{ matrix.ios-use-frameworks }}
144
- runs-on : macos-latest
148
+ runs-on : ${{ matrix.runs-on }}
145
149
env :
146
150
RN_SENTRY_POD_NAME : RNSentry
147
151
RN_DIFF_REPOSITORY : https://github.com/react-native-community/rn-diff-purge.git
@@ -151,16 +155,19 @@ jobs:
151
155
rn-version : ['0.65.3', '0.73.2']
152
156
rn-architecture : ['legacy', 'new']
153
157
platform : ['android', 'ios']
154
- build-type : ['dev', ' production']
158
+ build-type : ['production']
155
159
ios-use-frameworks : ['no', 'static', 'dynamic']
156
160
engine : ['hermes', 'jsc']
157
161
include :
158
162
- platform : ios
163
+ runs-on : macos-latest
159
164
runtime : ' latest'
160
165
device : ' iPhone 14'
166
+ - platform : android
167
+ runs-on : ubuntu-latest
161
168
exclude :
162
169
# exclude JSC for new RN versions (keeping the matrix manageable)
163
- - rn-version : ' 0.72.4 '
170
+ - rn-version : ' 0.73.2 '
164
171
engine : ' jsc'
165
172
# exclude all rn versions lower than 0.70.0 for new architecture
166
173
- rn-version : ' 0.65.3'
@@ -215,10 +222,16 @@ jobs:
215
222
java-version : ' 17'
216
223
distribution : ' adopt'
217
224
225
+ - name : Gradle cache
226
+ uses : gradle/gradle-build-action@v2
227
+
218
228
- name : Setup Global Tools
219
229
run : |
220
230
yarn global add yalc semver
221
- brew install xcbeautify
231
+
232
+ - name : Setup Global Xcode Tools
233
+ if : ${{ matrix.platform == 'ios' }}
234
+ run : brew install xcbeautify
222
235
223
236
- name : NPM cache SDK
224
237
uses : actions/cache@v3
@@ -387,7 +400,7 @@ jobs:
387
400
react-native-test :
388
401
name : Test RN ${{ matrix.rn-version }} ${{ matrix.rn-architecture }} ${{ matrix.engine }} ${{ matrix.platform }} ${{ matrix.build-type }} ${{ matrix.ios-use-frameworks }}
389
402
needs : react-native-build
390
- runs-on : macos-latest
403
+ runs-on : ${{ matrix.runs-on }}
391
404
strategy :
392
405
fail-fast : false # keeps matrix running if one fails
393
406
matrix :
@@ -399,24 +412,32 @@ jobs:
399
412
engine : ['hermes', 'jsc']
400
413
include :
401
414
- platform : ios
415
+ runs-on : macos-latest
402
416
runtime : ' latest'
403
417
device : ' iPhone 14'
418
+ - platform : android
419
+ runs-on : ubuntu-latest
404
420
exclude :
405
421
# exclude all rn versions lower than 0.70.0 for new architecture
406
422
- rn-version : ' 0.65.3'
407
423
rn-architecture : ' new'
408
424
# e2e test only the default combinations
409
425
- rn-version : ' 0.65.3'
410
426
engine : ' hermes'
411
- - rn-version : ' 0.72.4 '
427
+ - rn-version : ' 0.73.2 '
412
428
engine : ' jsc'
429
+ # E2E timeout due to a race condition https://github.com/facebook/react-native/issues/42123#issuecomment-1881203719
430
+ - rn-version : ' 0.73.2'
431
+ platform : ' ios'
432
+ rn-architecture : ' new'
413
433
env :
414
434
PLATFORM : ${{ matrix.platform }}
415
435
DEVICE : ${{ matrix.device }}
416
436
steps :
417
437
- uses : actions/checkout@v4
418
438
419
- - name : Setup Global Tools
439
+ - name : Setup Global Xcode Tools
440
+ if : ${{ matrix.platform == 'ios' }}
420
441
run : brew install xcbeautify
421
442
422
443
- name : Download App Package
@@ -445,6 +466,21 @@ jobs:
445
466
java-version : ' 17'
446
467
distribution : ' adopt'
447
468
469
+ - name : Gradle cache
470
+ uses : gradle/gradle-build-action@v2
471
+
472
+ - name : Setup KVM
473
+ if : ${{ matrix.platform == 'android' }}
474
+ shell : bash
475
+ run : |
476
+ # check if virtualization is supported...
477
+ sudo apt install -y --no-install-recommends cpu-checker coreutils && echo "CPUs=$(nproc --all)" && kvm-ok
478
+ # allow access to KVM to run the emulator
479
+ echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' \
480
+ | sudo tee /etc/udev/rules.d/99-kvm4all.rules
481
+ sudo udevadm control --reload-rules
482
+ sudo udevadm trigger --name-match=kvm
483
+
448
484
- name : NPM cache E2E Tests Library
449
485
uses : actions/cache@v3
450
486
id : deps-cache-e2e-library
@@ -494,10 +530,15 @@ jobs:
494
530
uses : reactivecircus/android-emulator-runner@50986b1464923454c95e261820bc626f38490ec0 # pin@v2
495
531
with :
496
532
working-directory : test/e2e
497
- api-level : 29
533
+ api-level : 30
534
+ force-avd-creation : false
535
+ disable-animations : true
536
+ disable-spellchecker : true
537
+ target : ' aosp_atd'
538
+ channel : canary # Necessary for ATDs
498
539
emulator-options : >
499
- -accel on
500
- -no-snapshot
540
+ -no-window
541
+ -no-snapshot-save
501
542
-gpu swiftshader_indirect
502
543
-noaudio
503
544
-no-boot-anim
0 commit comments