3
0
Fork 0
mirror of https://github.com/Swatinem/rust-cache synced 2026-02-13 22:33:06 +00:00

Compare case-insenitively for full cache key match

Some self-hosted (or otherwise non-github-hosted) runners are
non-case-preserving for cache keys. To support such configurations, set the
`cache-hit` output variable to `true` if the found cache key matches
case-insenitively.

Fixes: https://github.com/Swatinem/rust-cache/issues/302
This commit is contained in:
Kieron Briggs 2026-01-12 21:58:58 +11:00
parent 779680da71
commit 295c44fece
2 changed files with 6 additions and 2 deletions

View file

@ -151432,7 +151432,9 @@ async function run() {
lookupOnly, lookupOnly,
}); });
if (restoreKey) { if (restoreKey) {
const match = restoreKey === key; const match = restoreKey.localeCompare(key, undefined, {
sensitivity: "accent"
}) === 0;
lib_core.info(`${lookupOnly ? "Found" : "Restored from"} cache key "${restoreKey}" full match: ${match}.`); lib_core.info(`${lookupOnly ? "Found" : "Restored from"} cache key "${restoreKey}" full match: ${match}.`);
if (!match) { if (!match) {
// pre-clean the target directory on cache mismatch // pre-clean the target directory on cache mismatch

View file

@ -42,7 +42,9 @@ async function run() {
lookupOnly, lookupOnly,
}); });
if (restoreKey) { if (restoreKey) {
const match = restoreKey === key; const match = restoreKey.localeCompare(key, undefined, {
sensitivity: "accent"
}) === 0;
core.info(`${lookupOnly ? "Found" : "Restored from"} cache key "${restoreKey}" full match: ${match}.`); core.info(`${lookupOnly ? "Found" : "Restored from"} cache key "${restoreKey}" full match: ${match}.`);
if (!match) { if (!match) {
// pre-clean the target directory on cache mismatch // pre-clean the target directory on cache mismatch