2424 - name : Jest
2525 run : yarn test
2626
27- e2e_release_ios :
27+ e2e_ios :
2828 runs-on : macos-26
29+ strategy :
30+ fail-fast : false
31+ matrix :
32+ include :
33+ - arch : old
34+ pod-env : ' RCT_NEW_ARCH_ENABLED=0'
35+ - arch : new
36+ pod-env : ' RCT_NEW_ARCH_ENABLED=1'
37+ name : e2e_ios (${{ matrix.arch }} arch)
2938 env :
3039 DEVELOPER_DIR : /Applications/Xcode_26.3.app/Contents/Developer
3140 steps :
@@ -49,43 +58,31 @@ jobs:
4958 - uses : actions/cache@v5
5059 with :
5160 path : example/ios/Pods
52- key : pods-${{ runner.os }}-${{ hashFiles('example/ios/Podfile.lock') }}
61+ key : pods-${{ matrix.arch }}-${{ runner.os }}-${{ hashFiles('example/ios/Podfile.lock') }}
5362 - name : Pod install
54- run : cd example && RCT_NEW_ARCH_ENABLED=0 npx pod-install
63+ run : cd example && ${{ matrix.pod-env }} RCT_USE_RN_DEP=1 RCT_USE_PREBUILT_RNCORE=1 npx pod-install
5564 - name : Build app for e2e tests
5665 run : yarn detox:ios:build:release
5766 - name : Run e2e tests
5867 run : yarn detox:ios:test:release
5968 - uses : actions/upload-artifact@v7
6069 if : failure()
6170 with :
62- name : ios-e2e-artifacts
71+ name : ios-e2e-${{ matrix.arch }}- artifacts
6372 path : artifacts
6473 retention-days : 14
6574
66- new_arch_ios_build_only :
67- runs-on : macos-26
68- env :
69- DEVELOPER_DIR : /Applications/Xcode_26.3.app/Contents/Developer
70- steps :
71- - uses : actions/checkout@v6
72- - run : corepack enable
73- - uses : actions/setup-node@v6
74- with :
75- node-version : lts/*
76- cache : yarn
77- - run : yarn install --immutable
78- - uses : actions/cache@v5
79- with :
80- path : example/ios/Pods
81- key : pods-newarch-${{ runner.os }}-${{ hashFiles('example/ios/Podfile.lock') }}
82- - name : Pod install (new arch)
83- run : cd example && RCT_NEW_ARCH_ENABLED=1 RCT_USE_RN_DEP=1 RCT_USE_PREBUILT_RNCORE=1 npx pod-install
84- - name : Build app with new arch
85- run : yarn detox:ios:build:release
86-
87- e2e_release_android :
75+ e2e_android :
8876 runs-on : ubuntu-latest
77+ strategy :
78+ fail-fast : false
79+ matrix :
80+ include :
81+ - arch : old
82+ new-arch-enabled : false
83+ - arch : new
84+ new-arch-enabled : true
85+ name : e2e_android (${{ matrix.arch }} arch)
8986 env :
9087 GRADLE_OPTS : ' -Dorg.gradle.jvmargs="-Xmx4g -XX:+HeapDumpOnOutOfMemoryError" -Dorg.gradle.daemon=false'
9188 steps :
@@ -110,7 +107,7 @@ jobs:
110107 run : yarn bundle:android
111108 - run : yarn generateManifest
112109 - name : Build app for e2e tests
113- run : ORG_GRADLE_PROJECT_newArchEnabled=false yarn detox:android:build:release
110+ run : ORG_GRADLE_PROJECT_newArchEnabled=${{ matrix.new-arch-enabled }} yarn detox:android:build:release
114111 - name : Enable KVM
115112 run : |
116113 echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
@@ -126,34 +123,6 @@ jobs:
126123 - uses : actions/upload-artifact@v7
127124 if : failure()
128125 with :
129- name : android-e2e-artifacts
126+ name : android-e2e-${{ matrix.arch }}- artifacts
130127 path : artifacts
131128 retention-days : 14
132-
133- new_arch_android_build_only :
134- runs-on : ubuntu-latest
135- env :
136- GRADLE_OPTS : ' -Dorg.gradle.jvmargs="-Xmx4g -XX:+HeapDumpOnOutOfMemoryError" -Dorg.gradle.daemon=false'
137- steps :
138- - uses : actions/checkout@v6
139- - run : corepack enable
140- - uses : actions/setup-node@v6
141- with :
142- node-version : lts/*
143- cache : yarn
144- - uses : actions/setup-java@v5
145- with :
146- distribution : zulu
147- java-version : 17
148- - uses : actions/cache@v5
149- with :
150- path : |
151- ~/.gradle/caches
152- ~/.gradle/wrapper
153- key : gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
154- - run : yarn install --immutable
155- - name : Bundle JS
156- run : yarn bundle:android
157- - run : yarn generateManifest
158- - name : Build app with new arch
159- run : ORG_GRADLE_PROJECT_newArchEnabled=true yarn detox:android:build:release
0 commit comments