@@ -61,13 +61,17 @@ jobs:
6161 site=true
6262 web=true
6363 ;;
64+ .github/workflows/registry-canary.yml|scripts/test-registry-consumers.mjs)
65+ quality=true
66+ web=true
67+ ;;
6468 src/**|assets/**)
6569 android=true
6670 ios=true
6771 quality=true
6872 web=true
6973 ;;
70- cpp/fuzz/**|scripts/test-native-fuzz.sh)
74+ cpp/fuzz/**|scripts/test-native-fuzz.sh|cpp/benchmark/**|scripts/benchmark-native.mjs|.github/workflows/native-benchmark.yml )
7175 quality=true
7276 ;;
7377 cpp/**)
8488 android=true
8589 quality=true
8690 ;;
91+ compatibility/ios-api/**|scripts/test-rn-ios-compatibility.sh)
92+ ios=true
93+ quality=true
94+ ;;
8795 ios/**|example/ios/**|*.podspec)
8896 ios=true
8997 quality=true
@@ -190,15 +198,15 @@ jobs:
190198
191199 - name : Upload Android reports
192200 if : always()
193- uses : actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
201+ uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
194202 with :
195203 name : Android-Build-Reports-new-arch-${{ matrix.new-arch }}
196204 path : example/android/**/build/reports
197205 if-no-files-found : ignore
198206 retention-days : 7
199207
200208 - name : Upload APK
201- uses : actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
209+ uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
202210 with :
203211 name : app-release-${{ github.sha }}-new-arch-${{ matrix.new-arch }}
204212 path : example/android/app-release-${{ github.sha }}-new-arch-${{ matrix.new-arch }}.apk
@@ -256,7 +264,7 @@ jobs:
256264
257265 - name : Upload instrumentation reports
258266 if : always()
259- uses : actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
267+ uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
260268 with :
261269 name : New-Arch-Runtime-Test-Reports-${{ matrix.api-level }}
262270 path : |
@@ -316,12 +324,12 @@ jobs:
316324 - name : Set up Ruby
317325 uses : ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1
318326 with :
319- ruby-version : ' 3.0 '
327+ ruby-version : ' 3.3 '
320328 bundler-cache : true
321329 working-directory : example
322330
323331 - name : Cache Pods
324- uses : actions/cache@caa296126883cff596d87d8935842f9db880ef25 # v5
332+ uses : actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
325333 with :
326334 path : |
327335 example/ios/Pods
@@ -354,17 +362,65 @@ jobs:
354362 run : |
355363 set -o pipefail
356364 cd example/ios
357- xcodebuild -workspace BsDiffPatchExample.xcworkspace -scheme BsDiffPatchExample -configuration Release -sdk iphonesimulator -destination "platform=iOS Simulator,id=$SIMULATOR_UDID" -resultBundlePath "$RUNNER_TEMP/ios-tests.xcresult" test | bundle exec xcpretty
365+ xcodebuild \
366+ -workspace BsDiffPatchExample.xcworkspace \
367+ -scheme BsDiffPatchExample \
368+ -configuration Release \
369+ -sdk iphonesimulator \
370+ -destination "platform=iOS Simulator,id=$SIMULATOR_UDID" \
371+ -resultBundlePath "$RUNNER_TEMP/ios-tests.xcresult" \
372+ EXPECTED_NEW_ARCH=${{ matrix.new-arch }} \
373+ GCC_PREPROCESSOR_DEFINITIONS='$(inherited) EXPECTED_NEW_ARCH=$(EXPECTED_NEW_ARCH)' \
374+ test | bundle exec xcpretty
358375
359376 - name : Upload iOS test results
360377 if : always()
361- uses : actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
378+ uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
362379 with :
363380 name : iOS-Test-Results-new-arch-${{ matrix.new-arch }}
364381 path : ${{ runner.temp }}/ios-tests.xcresult
365382 if-no-files-found : ignore
366383 retention-days : 7
367384
385+ ios-rn-compatibility :
386+ name : iOS RN API Compatibility (${{ matrix.react-native }})
387+ needs : changes
388+ if : needs.changes.outputs.ios == 'true'
389+ runs-on : ${{ matrix.runner }}
390+ timeout-minutes : 45
391+ strategy :
392+ fail-fast : true
393+ max-parallel : 2
394+ matrix :
395+ include :
396+ - react-native : ' 0.73.11'
397+ node : ' 18'
398+ runner : macos-14
399+ - react-native : ' 0.74.7'
400+ node : ' 18'
401+ runner : macos-14
402+ - react-native : ' 0.86.0'
403+ node : ' 22'
404+ runner : macos-15
405+ steps :
406+ - name : Checkout the code
407+ uses : actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
408+
409+ - name : Set up Node.js
410+ uses : actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
411+ with :
412+ node-version : ${{ matrix.node }}
413+
414+ - name : Set up Ruby
415+ uses : ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1
416+ with :
417+ ruby-version : ' 3.3'
418+ bundler-cache : true
419+ working-directory : example
420+
421+ - name : Compile Pod against React Native iOS APIs
422+ run : sh scripts/test-rn-ios-compatibility.sh ${{ matrix.react-native }}
423+
368424 web-test :
369425 name : Web WASM and Browser Test
370426 needs : changes
@@ -447,6 +503,7 @@ jobs:
447503 android-api-level-test,
448504 android-rn-compatibility,
449505 ios-build-test,
506+ ios-rn-compatibility,
450507 web-test,
451508 site-test,
452509 ]
0 commit comments