9999
100100 prebuild_react_native_core :
101101 uses : ./.github/workflows/prebuild-ios-core.yml
102+ if : ${{ needs.prebuild_apple_dependencies.result == 'success' }}
102103 with :
103104 use-hermes-prebuilt : ${{ !endsWith(github.ref_name, '-stable') }}
104105 secrets : inherit
@@ -108,6 +109,7 @@ jobs:
108109 runs-on : macos-15
109110 needs :
110111 [prebuild_apple_dependencies, prebuild_react_native_core]
112+ if : ${{ needs.prebuild_react_native_core.result == 'success' }}
111113 steps :
112114 - name : Checkout
113115 uses : actions/checkout@v6
@@ -141,6 +143,7 @@ jobs:
141143 runs-on : macos-15-large
142144 needs :
143145 [prebuild_apple_dependencies, prebuild_react_native_core]
146+ if : ${{ needs.prebuild_react_native_core.result == 'success' }}
144147 continue-on-error : true
145148 strategy :
146149 fail-fast : false
@@ -158,6 +161,7 @@ jobs:
158161
159162 test_e2e_ios_rntester :
160163 needs : test_ios_rntester
164+ if : ${{ needs.test_ios_rntester.result == 'success' }}
161165 uses : ./.github/workflows/e2e-ios-rntester.yml
162166 secrets : inherit
163167
@@ -176,7 +180,8 @@ jobs:
176180 secrets : inherit
177181
178182 test_e2e_ios_templateapp :
179- needs : [build_npm_package, prebuild_apple_dependencies]
183+ needs : [build_npm_package, prebuild_apple_dependencies, check_code_changes]
184+ if : needs.check_code_changes.outputs.should_test_ios == 'true'
180185 uses : ./.github/workflows/e2e-ios-templateapp.yml
181186 secrets : inherit
182187
@@ -195,7 +200,8 @@ jobs:
195200 secrets : inherit
196201
197202 test_e2e_android_templateapp :
198- needs : build_npm_package
203+ needs : [build_npm_package, build_android]
204+ if : ${{ always() && needs.build_android.result == 'success' && needs.build_npm_package.result == 'success' }}
199205 uses : ./.github/workflows/e2e-android-templateapp.yml
200206 secrets : inherit
201207
@@ -284,6 +290,7 @@ jobs:
284290
285291 test_e2e_android_rntester :
286292 needs : build_android
293+ if : ${{ needs.build_android.result == 'success' }}
287294 uses : ./.github/workflows/e2e-android-rntester.yml
288295 secrets : inherit
289296
@@ -306,10 +313,15 @@ jobs:
306313 needs :
307314 [
308315 set_release_type,
316+ check_code_changes,
309317 build_android,
310318 prebuild_apple_dependencies,
311319 prebuild_react_native_core,
312320 ]
321+ if : |
322+ always() &&
323+ !contains(needs.*.result, 'failure') &&
324+ !contains(needs.*.result, 'cancelled')
313325 container :
314326 image : reactnativecommunity/react-native-android:latest
315327 env :
@@ -327,10 +339,12 @@ jobs:
327339 with :
328340 release-type : ${{ needs.set_release_type.outputs.RELEASE_TYPE }}
329341 gradle-cache-encryption-key : ${{ secrets.GRADLE_CACHE_ENCRYPTION_KEY }}
342+ skip-apple-prebuilts : ${{ needs.check_code_changes.outputs.should_test_ios == 'false' }}
330343
331344 test_android_helloworld :
332345 runs-on : 4-core-ubuntu
333- needs : build_npm_package
346+ needs : [build_npm_package, build_android]
347+ if : ${{ always() && needs.build_android.result == 'success' && needs.build_npm_package.result == 'success' }}
334348 container :
335349 image : reactnativecommunity/react-native-android:latest
336350 env :
@@ -396,6 +410,7 @@ jobs:
396410 test_ios_helloworld_with_ruby_3_2_0 :
397411 runs-on : macos-15
398412 needs : [prebuild_apple_dependencies, prebuild_react_native_core]
413+ if : ${{ needs.prebuild_react_native_core.result == 'success' }}
399414 env :
400415 PROJECT_NAME : iOSTemplateProject
401416 YARN_ENABLE_IMMUTABLE_INSTALLS : false
@@ -410,6 +425,7 @@ jobs:
410425 test_ios_helloworld :
411426 runs-on : macos-15
412427 needs : [prebuild_apple_dependencies, prebuild_react_native_core]
428+ if : ${{ needs.prebuild_react_native_core.result == 'success' }}
413429 strategy :
414430 matrix :
415431 flavor : [Debug, Release]
@@ -510,4 +526,3 @@ jobs:
510526 - name : Verify debugger-shell build
511527 shell : bash
512528 run : node scripts/debugger-shell/build-binary.js
513-
0 commit comments