From 5dd90c562354758942c833b0a46923176e92208e Mon Sep 17 00:00:00 2001 From: Samuel Susla Date: Tue, 2 May 2023 12:04:02 +0100 Subject: [PATCH] Use content hash for react-native builds (#26734) --- .github/workflows/commit_artifacts.yml | 9 +++++++++ scripts/rollup/build-all-release-channels.js | 20 ++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/.github/workflows/commit_artifacts.yml b/.github/workflows/commit_artifacts.yml index 11676a0dc0..2e5007982b 100644 --- a/.github/workflows/commit_artifacts.yml +++ b/.github/workflows/commit_artifacts.yml @@ -228,7 +228,16 @@ jobs: name: compiled-rn path: compiled-rn/ - run: git status -u + - name: Check if only the REVISION file has changed + id: check_should_commit + run: | + if git status --porcelain | grep -qv '/REVISION$'; then + echo "should_commit=true" >> "$GITHUB_OUTPUT" + else + echo "should_commit=false" >> "$GITHUB_OUTPUT" + fi - name: Commit changes to branch + if: steps.check_should_commit.outputs.should_commit == 'true' uses: stefanzweifel/git-auto-commit-action@v4 with: commit_message: | diff --git a/scripts/rollup/build-all-release-channels.js b/scripts/rollup/build-all-release-channels.js index 238d9b5a7f..b4bc0d5d8f 100644 --- a/scripts/rollup/build-all-release-channels.js +++ b/scripts/rollup/build-all-release-channels.js @@ -177,6 +177,26 @@ function processStable(buildDir) { ); } + const reactNativeBuildDir = buildDir + '/react-native/implementations/'; + if (fs.existsSync(reactNativeBuildDir)) { + const hash = crypto.createHash('sha1'); + for (const fileName of fs.readdirSync(reactNativeBuildDir).sort()) { + const filePath = reactNativeBuildDir + fileName; + const stats = fs.statSync(filePath); + if (!stats.isDirectory()) { + hash.update(fs.readFileSync(filePath)); + } + } + updatePlaceholderReactVersionInCompiledArtifacts( + reactNativeBuildDir, + ReactVersion + + '-' + + nextChannelLabel + + '-' + + hash.digest('hex').slice(0, 8) + ); + } + // Update remaining placeholders with next channel version updatePlaceholderReactVersionInCompiledArtifacts( buildDir,