From c7573700d9e7e3b38f9df8983409406345f1f251 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Fri, 24 Apr 2026 17:27:15 +0100 Subject: [PATCH 1/4] Use pinned Hermes version when version.properties is not 1000.0.0 The use-hermes-nightly flag was computed from the branch name, which evaluates incorrectly for PR branches targeting stable. Instead, read the actual HERMES_VERSION_NAME from version.properties and only use nightly when it is the 1000.0.0 development placeholder. --- .github/actions/test-ios-helloworld/action.yml | 5 ++++- .github/actions/test-ios-rntester/action.yml | 5 ++++- .github/workflows/prebuild-ios-core.yml | 7 ++----- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/actions/test-ios-helloworld/action.yml b/.github/actions/test-ios-helloworld/action.yml index 66d4ee84791b..6a136b8ab76e 100644 --- a/.github/actions/test-ios-helloworld/action.yml +++ b/.github/actions/test-ios-helloworld/action.yml @@ -26,7 +26,10 @@ runs: - name: Set nightly Hermes versions shell: bash run: | - node ./scripts/releases/use-hermes-nightly.js + HERMES_VERSION=$(sed -n 's/^HERMES_VERSION_NAME=//p' packages/react-native/sdks/hermes-engine/version.properties) + if [ "$HERMES_VERSION" == "1000.0.0" ]; then + node ./scripts/releases/use-hermes-nightly.js + fi - name: Run yarn install again, with the correct hermes version uses: ./.github/actions/yarn-install - name: Download ReactNativeDependencies diff --git a/.github/actions/test-ios-rntester/action.yml b/.github/actions/test-ios-rntester/action.yml index 3d6d83b3b6e7..6f5e2ad91403 100644 --- a/.github/actions/test-ios-rntester/action.yml +++ b/.github/actions/test-ios-rntester/action.yml @@ -35,7 +35,10 @@ runs: - name: Set nightly Hermes versions shell: bash run: | - node ./scripts/releases/use-hermes-nightly.js + HERMES_VERSION=$(sed -n 's/^HERMES_VERSION_NAME=//p' packages/react-native/sdks/hermes-engine/version.properties) + if [ "$HERMES_VERSION" == "1000.0.0" ]; then + node ./scripts/releases/use-hermes-nightly.js + fi - name: Run yarn install again, with the correct hermes version uses: ./.github/actions/yarn-install - name: Prepare IOS Tests diff --git a/.github/workflows/prebuild-ios-core.yml b/.github/workflows/prebuild-ios-core.yml index ce2f6b88c30b..e2f8ed3541fb 100644 --- a/.github/workflows/prebuild-ios-core.yml +++ b/.github/workflows/prebuild-ios-core.yml @@ -47,12 +47,9 @@ jobs: - name: Set Hermes version shell: bash run: | - if [ "${{ inputs.use-hermes-nightly }}" == "true" ]; then - # We are not publishing nightly versions of Hermes V1 yet. - # For now, we can use the latest version of Hermes V1 published on maven and npm. + HERMES_VERSION=$(sed -n 's/^HERMES_V1_VERSION_NAME=//p' packages/react-native/sdks/hermes-engine/version.properties) + if [ "$HERMES_VERSION" == "1000.0.0" ]; then HERMES_VERSION="latest-v1" - else - HERMES_VERSION=$(sed -n 's/^HERMES_V1_VERSION_NAME=//p' packages/react-native/sdks/hermes-engine/version.properties) fi echo "Using Hermes version: $HERMES_VERSION" echo "HERMES_VERSION=$HERMES_VERSION" >> $GITHUB_ENV From 3ada278cfb3063a5203b13559ebde82af2c8fad5 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Fri, 24 Apr 2026 17:30:31 +0100 Subject: [PATCH 2/4] Remove unused use-hermes-nightly input from prebuild-ios-core The Hermes version is now derived from version.properties directly, so the use-hermes-nightly input and all caller references are no longer needed. --- .github/workflows/nightly.yml | 1 - .github/workflows/prebuild-ios-core.yml | 5 ----- .github/workflows/test-all.yml | 2 -- 3 files changed, 8 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index f8d3b0f8d96a..703ea863904b 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -29,7 +29,6 @@ jobs: prebuild_react_native_core: uses: ./.github/workflows/prebuild-ios-core.yml with: - use-hermes-nightly: true version-type: nightly secrets: inherit needs: [prebuild_apple_dependencies] diff --git a/.github/workflows/prebuild-ios-core.yml b/.github/workflows/prebuild-ios-core.yml index e2f8ed3541fb..3dac6b9a21b9 100644 --- a/.github/workflows/prebuild-ios-core.yml +++ b/.github/workflows/prebuild-ios-core.yml @@ -8,11 +8,6 @@ on: type: string required: false default: '' - use-hermes-nightly: - description: 'Whether to use the hermes nightly build or read the version from the versions.properties file' - type: boolean - required: false - default: false jobs: build-rn-slice: diff --git a/.github/workflows/test-all.yml b/.github/workflows/test-all.yml index 2e1f876bc0a4..23de6e68eecb 100644 --- a/.github/workflows/test-all.yml +++ b/.github/workflows/test-all.yml @@ -96,8 +96,6 @@ jobs: prebuild_react_native_core: uses: ./.github/workflows/prebuild-ios-core.yml - with: - use-hermes-nightly: ${{ !endsWith(github.ref_name, '-stable') }} secrets: inherit needs: [prebuild_apple_dependencies] From beb2c71b641d76617d45d8c6f56361d41eb66bbd Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Fri, 24 Apr 2026 17:43:35 +0100 Subject: [PATCH 3/4] Prefix Hermes V1 version with hermes-v for Maven Central lookup The Maven Central artifact version uses the hermes-v prefix (e.g. hermes-v250829098.0.10), but the version.properties file stores the raw version number. Add the prefix when constructing the HERMES_VERSION env var so the prebuild script finds the artifact. --- .github/workflows/prebuild-ios-core.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/prebuild-ios-core.yml b/.github/workflows/prebuild-ios-core.yml index 3dac6b9a21b9..6aa4b180dacf 100644 --- a/.github/workflows/prebuild-ios-core.yml +++ b/.github/workflows/prebuild-ios-core.yml @@ -45,6 +45,8 @@ jobs: HERMES_VERSION=$(sed -n 's/^HERMES_V1_VERSION_NAME=//p' packages/react-native/sdks/hermes-engine/version.properties) if [ "$HERMES_VERSION" == "1000.0.0" ]; then HERMES_VERSION="latest-v1" + else + HERMES_VERSION="hermes-v${HERMES_VERSION}" fi echo "Using Hermes version: $HERMES_VERSION" echo "HERMES_VERSION=$HERMES_VERSION" >> $GITHUB_ENV From adeb49dea4d9ee7e4afe4b41786ddbbe09caf5a8 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Fri, 24 Apr 2026 17:54:58 +0100 Subject: [PATCH 4/4] Remove incorrect hermes-v prefix from Hermes version The Maven Central artifact uses the raw version number (e.g. 250829098.0.10), not the hermes-v prefixed form. --- .github/workflows/prebuild-ios-core.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/prebuild-ios-core.yml b/.github/workflows/prebuild-ios-core.yml index 6aa4b180dacf..3dac6b9a21b9 100644 --- a/.github/workflows/prebuild-ios-core.yml +++ b/.github/workflows/prebuild-ios-core.yml @@ -45,8 +45,6 @@ jobs: HERMES_VERSION=$(sed -n 's/^HERMES_V1_VERSION_NAME=//p' packages/react-native/sdks/hermes-engine/version.properties) if [ "$HERMES_VERSION" == "1000.0.0" ]; then HERMES_VERSION="latest-v1" - else - HERMES_VERSION="hermes-v${HERMES_VERSION}" fi echo "Using Hermes version: $HERMES_VERSION" echo "HERMES_VERSION=$HERMES_VERSION" >> $GITHUB_ENV