From 24e7f7d25629a7af6d877a0b79fed2faaab96437 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Tue, 6 Aug 2024 06:41:35 -0700 Subject: [PATCH] Try to restore caches for Hermes (#45908) Summary: We had CI on main failing consistently the past couple of days. The problem is that the hermes pipeline is failing to create the iOS XCFramework with the error: > unable to create a Mach-O from the binary at '/Users/runner/work/react-native/react-native/packages/react-native/sdks/hermes/destroot/Library/Frameworks/catalyst/hermes.framework/hermes' The main cause is this upgrade of [upload-artifacts](https://github.com/actions/upload-artifact/issues/590) which breaks symlinks. The solution is to bump the caches and downgrade the `upload-artifact` actions. ## Changelog: [Internal] - Try to fix CI for Hermes Pull Request resolved: https://github.com/facebook/react-native/pull/45908 Test Plan: GHA must be green Reviewed By: cortinico Differential Revision: D60828616 Pulled By: cipolleschi fbshipit-source-id: 6976b86dd67e2fd9d806ebaa62f47e39dc44b30d --- .github/actions/build-android/action.yml | 12 ++++++------ .github/actions/build-apple-slices-hermes/action.yml | 6 +++--- .github/actions/build-hermes-macos/action.yml | 6 +++--- .github/actions/build-hermesc-apple/action.yml | 2 +- .github/actions/build-hermesc-linux/action.yml | 2 +- .github/actions/build-hermesc-windows/action.yml | 2 +- .github/actions/build-npm-package/action.yml | 4 ++-- .github/actions/maestro-android/action.yml | 2 +- .github/actions/maestro-ios/action.yml | 4 ++-- .github/actions/prepare-hermes-workspace/action.yml | 2 +- .github/actions/test-ios-rntester/action.yml | 4 ++-- .github/actions/test-js/action.yml | 2 +- .github/workflows/test-all.yml | 2 +- 13 files changed, 25 insertions(+), 25 deletions(-) diff --git a/.github/actions/build-android/action.yml b/.github/actions/build-android/action.yml index 4e33472eb02b83..7f589b5eeea85b 100644 --- a/.github/actions/build-android/action.yml +++ b/.github/actions/build-android/action.yml @@ -62,13 +62,13 @@ runs: shell: bash run: ccache -s -v - name: Upload Maven Artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: maven-local path: /tmp/maven-local - name: Upload test results if: ${{ always() }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: build-android-results compression-level: 1 @@ -78,28 +78,28 @@ runs: packages/react-native/ReactAndroid/build/reports - name: Upload RNTester APK - hermes-debug if: ${{ always() }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: rntester-hermes-debug path: packages/rn-tester/android/app/build/outputs/apk/hermes/debug/ compression-level: 0 - name: Upload RNTester APK - hermes-release if: ${{ always() }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: rntester-hermes-release path: packages/rn-tester/android/app/build/outputs/apk/hermes/release/ compression-level: 0 - name: Upload RNTester APK - jsc-debug if: ${{ always() }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: rntester-jsc-debug path: packages/rn-tester/android/app/build/outputs/apk/jsc/debug/ compression-level: 0 - name: Upload RNTester APK - jsc-release if: ${{ always() }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: rntester-jsc-release path: packages/rn-tester/android/app/build/outputs/apk/jsc/release/ diff --git a/.github/actions/build-apple-slices-hermes/action.yml b/.github/actions/build-apple-slices-hermes/action.yml index 1cdd45b0ef05ec..9df82187f6b90e 100644 --- a/.github/actions/build-apple-slices-hermes/action.yml +++ b/.github/actions/build-apple-slices-hermes/action.yml @@ -30,7 +30,7 @@ runs: uses: actions/cache/restore@v4 with: path: ./packages/react-native/sdks/hermes/build_${{ inputs.slice }}_${{ inputs.flavor }} - key: v4-hermes-apple-${{ inputs.hermes-version }}-${{ inputs.react-native-version }}-${{ hashfiles('packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh') }}-${{ inputs.slice }}-${{ inputs.flavor }} + key: v5-hermes-apple-${{ inputs.hermes-version }}-${{ inputs.react-native-version }}-${{ hashfiles('packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh') }}-${{ inputs.slice }}-${{ inputs.flavor }} - name: Build the Hermes ${{ inputs.slice }} frameworks shell: bash run: | @@ -86,7 +86,7 @@ runs: exit 1 fi - name: Upload Artifact for Slice (${{ inputs.slice }}, ${{ inputs.flavor }}} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: slice-${{ inputs.slice }}-${{ inputs.flavor }} path: ./packages/react-native/sdks/hermes/build_${{ inputs.slice }}_${{ inputs.flavor }} @@ -95,4 +95,4 @@ runs: uses: actions/cache/save@v4 with: path: ./packages/react-native/sdks/hermes/build_${{ inputs.slice }}_${{ inputs.flavor }} - key: v4-hermes-apple-${{ inputs.hermes-version }}-${{ inputs.react-native-version }}-${{ hashfiles('packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh') }}-${{ inputs.SLICE }}-${{ inputs.FLAVOR }} + key: v5-hermes-apple-${{ inputs.hermes-version }}-${{ inputs.react-native-version }}-${{ hashfiles('packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh') }}-${{ inputs.SLICE }}-${{ inputs.FLAVOR }} diff --git a/.github/actions/build-hermes-macos/action.yml b/.github/actions/build-hermes-macos/action.yml index bbad034ad52fc1..0bc256d21d4d61 100644 --- a/.github/actions/build-hermes-macos/action.yml +++ b/.github/actions/build-hermes-macos/action.yml @@ -170,17 +170,17 @@ runs: mkdir -p "$DEST_DIR" mv "hermes.framework.dSYM" "$DEST_DIR" - name: Upload hermes dSYM artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: hermes-dSYM-${{ inputs.flavor }} path: /tmp/hermes/dSYM/${{ inputs.flavor }} - name: Upload hermes Runtime artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: hermes-darwin-bin-${{ inputs.flavor }} path: /tmp/hermes/hermes-runtime-darwin/hermes-ios-${{ inputs.flavor }}.tar.gz - name: Upload hermes osx artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: hermes-osx-bin-${{ inputs.flavor }} path: /tmp/hermes/osx-bin/${{ inputs.flavor }} diff --git a/.github/actions/build-hermesc-apple/action.yml b/.github/actions/build-hermesc-apple/action.yml index 21a05711507531..dba2cb37c1b3c1 100644 --- a/.github/actions/build-hermesc-apple/action.yml +++ b/.github/actions/build-hermesc-apple/action.yml @@ -24,7 +24,7 @@ runs: . ./utils/build-apple-framework.sh build_host_hermesc_if_needed - name: Upload HermesC Artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: hermesc-apple path: ./packages/react-native/sdks/hermes/build_host_hermesc diff --git a/.github/actions/build-hermesc-linux/action.yml b/.github/actions/build-hermesc-linux/action.yml index 7fcc27728c421f..5c2298ea83bc50 100644 --- a/.github/actions/build-hermesc-linux/action.yml +++ b/.github/actions/build-hermesc-linux/action.yml @@ -43,7 +43,7 @@ runs: cp /tmp/hermes/build/bin/hermesc /tmp/hermes/linux64-bin/. fi - name: Upload linux artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: hermes-linux-bin path: /tmp/hermes/linux64-bin diff --git a/.github/actions/build-hermesc-windows/action.yml b/.github/actions/build-hermesc-windows/action.yml index bce37e07a49a15..743e820942fca0 100644 --- a/.github/actions/build-hermesc-windows/action.yml +++ b/.github/actions/build-hermesc-windows/action.yml @@ -80,7 +80,7 @@ runs: Write-Host "Skipping; Clean c:\tmp\hermes\win64-bin to rebuild." } - name: Upload windows artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: hermes-win64-bin path: D:\tmp\hermes\win64-bin\ diff --git a/.github/actions/build-npm-package/action.yml b/.github/actions/build-npm-package/action.yml index e97d47f1ceaefe..c8df158732ea07 100644 --- a/.github/actions/build-npm-package/action.yml +++ b/.github/actions/build-npm-package/action.yml @@ -123,7 +123,7 @@ runs: fi node ./scripts/releases-ci/publish-npm.js -t ${{ inputs.release-type }} - name: Upload npm logs - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: npm-logs path: ~/.npm/_logs @@ -138,7 +138,7 @@ runs: echo "$FILENAME" > build/react-native-package-version - name: Upload release package - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 if: ${{ inputs.release-type == 'dry-run' }} with: name: react-native-package diff --git a/.github/actions/maestro-android/action.yml b/.github/actions/maestro-android/action.yml index a0194d2d0b1184..1b34e6efe0e117 100644 --- a/.github/actions/maestro-android/action.yml +++ b/.github/actions/maestro-android/action.yml @@ -64,7 +64,7 @@ runs: screen.mp4 - name: Store Logs if: failure() && steps.run-tests.outcome == 'failure' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: maestro-logs-android-${{ inputs.app-id }}-${{ inputs.jsengine }} path: /tmp/MaestroLogs diff --git a/.github/actions/maestro-ios/action.yml b/.github/actions/maestro-ios/action.yml index 21893bea0a69bb..8379a6d458f6ab 100644 --- a/.github/actions/maestro-ios/action.yml +++ b/.github/actions/maestro-ios/action.yml @@ -80,7 +80,7 @@ runs: exit $RESULT - name: Store video record if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: e2e_ios_${{ inputs.app-id }}_report_${{ inputs.jsengine }} path: | @@ -90,7 +90,7 @@ runs: report.xml - name: Store Logs if: failure() && steps.run-tests.outcome == 'failure' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: maestro-logs-${{ inputs.app-id }}-${{ inputs.jsengine }} path: /tmp/MaestroLogs diff --git a/.github/actions/prepare-hermes-workspace/action.yml b/.github/actions/prepare-hermes-workspace/action.yml index 2ea1a2ab74fa9c..4a5e638790e017 100644 --- a/.github/actions/prepare-hermes-workspace/action.yml +++ b/.github/actions/prepare-hermes-workspace/action.yml @@ -82,7 +82,7 @@ runs: echo ${{ steps.hermes-version.outputs.version }} - name: Upload Hermes artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: hermes-workspace path: | diff --git a/.github/actions/test-ios-rntester/action.yml b/.github/actions/test-ios-rntester/action.yml index 2829309dd94adc..6b645691f9f0d5 100644 --- a/.github/actions/test-ios-rntester/action.yml +++ b/.github/actions/test-ios-rntester/action.yml @@ -153,14 +153,14 @@ runs: XCRESULT_PATH=$(find . -name '*.xcresult') tar -zcvf xcresults.tar.gz $XCRESULT_PATH - name: Upload artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 if: ${{ inputs.run-unit-tests == 'true' }} with: name: xcresults path: /Users/distiller/Library/Developer/Xcode/xcresults.tar.gz - name: Store test results if: ${{ inputs.run-unit-tests == 'true' }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: test-results path: ./reports/junit diff --git a/.github/actions/test-js/action.yml b/.github/actions/test-js/action.yml index 13ddedfa644b88..4cb531c46097b7 100644 --- a/.github/actions/test-js/action.yml +++ b/.github/actions/test-js/action.yml @@ -19,7 +19,7 @@ runs: run: node ./scripts/run-ci-javascript-tests.js --maxWorkers 2 - name: Upload test results if: ${{ always() }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: test-js-results compression-level: 1 diff --git a/.github/workflows/test-all.yml b/.github/workflows/test-all.yml index f256005517a697..f9a8dd601fc944 100644 --- a/.github/workflows/test-all.yml +++ b/.github/workflows/test-all.yml @@ -511,7 +511,7 @@ jobs: fi yarn build android "${args[@]}" -P reactNativeArchitectures="$TARGET_ARCHITECTURE" -P react.internal.mavenLocalRepo="/tmp/maven-local" - name: Upload artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.4 with: name: helloworld-apk-${{ matrix.flavor }}-${{ matrix.architecture }}-${{ matrix.jsengine }} path: ./packages/helloworld/android/app/build/outputs/apk/