summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-05-30 17:09:07 -0400
committerGitHub <noreply@github.com>2023-05-30 17:09:07 -0400
commit047edf6a75133decf069e6118634caa76a455d7c (patch)
tree2045b050ade0f401f1a6074b1187170f5eb98d0e
parent42a3f52e983e6b37ac1f69733a9347505e061e43 (diff)
ci: bump CI cache version on CLI version bump (#19318)
Automatically bump the CI cache version
-rwxr-xr-x.github/workflows/ci.generate.ts10
-rwxr-xr-xtools/release/01_bump_crate_versions.ts24
2 files changed, 31 insertions, 3 deletions
diff --git a/.github/workflows/ci.generate.ts b/.github/workflows/ci.generate.ts
index c52ef011f..ef37374c4 100755
--- a/.github/workflows/ci.generate.ts
+++ b/.github/workflows/ci.generate.ts
@@ -2,6 +2,11 @@
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
import * as yaml from "https://deno.land/std@0.173.0/encoding/yaml.ts";
+// Bump this number when you want to purge the cache.
+// Note: the tools/release/01_bump_crate_versions.ts script will update this version
+// automatically via regex, so ensure that this line maintains this format.
+const cacheVersion = 32;
+
const Runners = (() => {
const ubuntuRunner = "ubuntu-22.04";
const ubuntuXlRunner = "ubuntu-22.04-xl";
@@ -15,9 +20,8 @@ const Runners = (() => {
windows: "windows-2022",
};
})();
-// bump the number at the start when you want to purge the cache
const prCacheKeyPrefix =
- "32-cargo-target-${{ matrix.os }}-${{ matrix.profile }}-${{ matrix.job }}-";
+ `${cacheVersion}-cargo-target-\${{ matrix.os }}-\${{ matrix.profile }}-\${{ matrix.job }}-`;
const installPkgsCommand =
"sudo apt-get install --no-install-recommends debootstrap clang-15 lld-15";
@@ -480,7 +484,7 @@ const ci = {
"~/.cargo/git/db",
].join("\n"),
key:
- "32-cargo-home-${{ matrix.os }}-${{ hashFiles('Cargo.lock') }}",
+ `${cacheVersion}-cargo-home-\${{ matrix.os }}-\${{ hashFiles('Cargo.lock') }}`,
},
},
{
diff --git a/tools/release/01_bump_crate_versions.ts b/tools/release/01_bump_crate_versions.ts
index d9c67a817..c709ccc80 100755
--- a/tools/release/01_bump_crate_versions.ts
+++ b/tools/release/01_bump_crate_versions.ts
@@ -8,6 +8,8 @@ const repo = workspace.repo;
const cliCrate = workspace.getCliCrate();
const originalCliVersion = cliCrate.version;
+await bumpCiCacheVersion();
+
// increment the cli version
if (Deno.args.some((a) => a === "--patch")) {
await cliCrate.increment("patch");
@@ -110,3 +112,25 @@ async function updateStdVersion() {
text.replace(versionRe, `std@${newStdVersion}`),
);
}
+
+async function bumpCiCacheVersion() {
+ const generateScript = workspace.repo.folderPath.join(
+ ".github/workflows/ci.generate.ts",
+ );
+ const fileText = generateScript.readTextSync();
+ const cacheVersionRegex = /const cacheVersion = ([0-9]+);/;
+ const version = fileText.match(cacheVersionRegex)?.[1];
+ if (version == null) {
+ throw new Error("Could not find cache version in text.");
+ }
+ const toVersion = parseInt(version, 10) + 1;
+ $.logStep(`Bumping cache version from ${version} to ${toVersion}...`);
+ const newText = fileText.replace(
+ cacheVersionRegex,
+ `const cacheVersion = ${toVersion};`,
+ );
+ generateScript.writeTextSync(newText);
+
+ // run the script
+ await $`${generateScript}`;
+}