diff --git a/CHANGELOG.md b/CHANGELOG.md index 44aed25..9ba0775 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 1.2.0 + +- Updated to not save the cache if one of the required paths does not exist. + # 1.1.0 - Added a `cache-base` input. When provided, will only save cache on this branch/ref, but will diff --git a/action.yml b/action.yml index 5055283..249ef27 100644 --- a/action.yml +++ b/action.yml @@ -8,7 +8,7 @@ inputs: description: 'Comma-separated list of global binaries to install into Cargo.' cache: description: 'Toggle caching of ~/.cargo/registry and /target/ directories.' - default: true + default: 'true' cache-base: description: 'Base branch/ref to save a warmup cache on. Other branches/refs will restore from this base.' @@ -21,7 +21,7 @@ inputs: description: 'Comma-separated list of additional components to install.' inherit-toolchain: description: 'Inherit all toolchain settings from the rust-toolchain.toml file.' - default: false + default: 'false' targets: description: 'Comma-separated list of additional targets to install.' profile: diff --git a/src/cargo.ts b/src/cargo.ts index c053438..9ae2704 100644 --- a/src/cargo.ts +++ b/src/cargo.ts @@ -165,12 +165,21 @@ export async function saveCache() { return; } + const cachePaths = getCachePaths(); + + for (const cachePath of cachePaths) { + if (!fs.existsSync(cachePath)) { + core.info(`Cache path ${cachePath} does not exist, skipping save`); + return; + } + } + await cleanCargoRegistry(); await cleanTargetProfile(); core.info(`Saving cache with key ${primaryKey}`); - await cache.saveCache(getCachePaths(), primaryKey); + await cache.saveCache(cachePaths, primaryKey); } export async function restoreCache() {