Skip to content

Commit 465d72f

Browse files
cortinicofacebook-github-bot
authored andcommitted
Make CircleCI caches for hermesc be version dependent (#37452)
Summary: Pull Request resolved: #37452 Fixes #37428 We do have cache poisoning for hermesc on Windows and Linux due to reusing the same cache key among different React Native version. This fixes it by specifying a cache key which is version dependent + it invalidates the caches by defining a new key. Changelog: [Internal] [Fixed] - Make CircleCI caches for hermesc be version dependent Reviewed By: dmytrorykun Differential Revision: D45909178 fbshipit-source-id: 8ac242cf1a6fd60d915b8dc94f1a0a0adf06af5b
1 parent 2b932c3 commit 465d72f

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

.circleci/config.yml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ references:
6262
hermes_workspace_cache_key: &hermes_workspace_cache_key v4-hermes-{{ .Environment.CIRCLE_JOB }}-{{ checksum "/tmp/hermes/hermesversion" }}
6363
hermes_workspace_debug_cache_key: &hermes_workspace_debug_cache_key v2-hermes-{{ .Environment.CIRCLE_JOB }}-debug-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
6464
hermes_workspace_release_cache_key: &hermes_workspace_release_cache_key v2-hermes-{{ .Environment.CIRCLE_JOB }}-release-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
65-
hermes_windows_cache_key: &hermes_windows_cache_key v3-hermes-{{ .Environment.CIRCLE_JOB }}-{{ checksum "tmp/hermes/hermesversion" }}
65+
hermes_linux_cache_key: &hermes_linux_cache_key v1-hermes-{{ .Environment.CIRCLE_JOB }}-linux-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
66+
hermes_windows_cache_key: &hermes_windows_cache_key v1-hermes-{{ .Environment.CIRCLE_JOB }}-windows-{{ checksum "tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
6667
hermes_tarball_debug_cache_key: &hermes_tarball_debug_cache_key v4-hermes-tarball-debug-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
6768
hermes_tarball_release_cache_key: &hermes_tarball_release_cache_key v3-hermes-tarball-release-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
6869
pods_cache_key: &pods_cache_key v8-pods-{{ .Environment.CIRCLE_JOB }}-{{ checksum "packages/rn-tester/Podfile.lock.bak" }}-{{ checksum "packages/rn-tester/Podfile" }}
@@ -1148,15 +1149,17 @@ jobs:
11481149
resource_class: "xlarge"
11491150
working_directory: /root
11501151
steps:
1152+
- checkout_code_with_cache
11511153
- run:
11521154
name: Install dependencies
11531155
command: |
11541156
apt update
11551157
apt install -y git openssh-client cmake build-essential \
11561158
libreadline-dev libicu-dev zip python3
11571159
- *attach_hermes_workspace
1160+
- get_react_native_version
11581161
- restore_cache:
1159-
key: *hermes_workspace_cache_key
1162+
key: *hermes_linux_cache_key
11601163
- run:
11611164
name: Set up workspace
11621165
command: |
@@ -1175,7 +1178,7 @@ jobs:
11751178
cp /tmp/hermes/build/bin/hermesc /tmp/hermes/linux64-bin/.
11761179
fi
11771180
- save_cache:
1178-
key: *hermes_workspace_cache_key
1181+
key: *hermes_linux_cache_key
11791182
paths:
11801183
- /tmp/hermes/linux64-bin/
11811184
- /tmp/hermes/hermes/destroot/
@@ -1296,7 +1299,16 @@ jobs:
12961299
- MSBUILD_DIR: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin'
12971300
- CMAKE_DIR: 'C:\Program Files\CMake\bin'
12981301
steps:
1302+
- checkout_code_with_cache
12991303
- *attach_hermes_workspace
1304+
- run:
1305+
name: Get /tmp/react-native-version cache file
1306+
command: |
1307+
$VERSION=cat packages/react-native/package.json | jq -r '.version'
1308+
echo "$VERSION" > /tmp/react-native-version
1309+
echo "React Native Version is $(cat /tmp/react-native-version)"
1310+
echo "Hermes commit is $(cat /tmp/hermes/hermesversion)"
1311+
13001312
- restore_cache:
13011313
key: *hermes_windows_cache_key
13021314
- run:

0 commit comments

Comments
 (0)