diff --git a/README.md b/README.md index 79376144..4548e8cb 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,10 @@ See [action.yml](action.yml) # Default: '' cache-dependency-path: '' + # Set this option if you dont want the action to save the cache if it couldnt be restored + # Default: false + cache-restore-only: '' + # Optional registry to set up for auth. Will set the registry in a project level .npmrc and .yarnrc file, # and set up auth to read in from env.NODE_AUTH_TOKEN. # Default: '' diff --git a/action.yml b/action.yml index 40af8838..3def9862 100644 --- a/action.yml +++ b/action.yml @@ -25,6 +25,9 @@ inputs: description: 'Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm.' cache-dependency-path: description: 'Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. Supports wildcards or a list of file names for caching multiple dependencies.' + cache-restore-only: + description: 'Set this option if you dont want to save the cache when it couldnt be restored.' + default: false # TODO: add input to control forcing to pull from cloud or dist. # escape valve for someone having issues or needing the absolute latest which isn't cached yet outputs: diff --git a/dist/cache-save/index.js b/dist/cache-save/index.js index 0b7060e5..20626afd 100644 --- a/dist/cache-save/index.js +++ b/dist/cache-save/index.js @@ -82974,6 +82974,10 @@ const cachePackages = (packageManager) => __awaiter(void 0, void 0, void 0, func core.debug(`Caching for '${packageManager}' is not supported`); return; } + if (core.getInput('cache-restore-only') == 'true') { + core.info(`Cache was not saved since 'cache-restore-only' was set to true`); + return; + } if (!cachePaths.length) { // TODO: core.getInput has a bug - it can return undefined despite its definition (tests only?) // export declare function getInput(name: string, options?: InputOptions): string; diff --git a/src/cache-save.ts b/src/cache-save.ts index 4499e999..00653b34 100644 --- a/src/cache-save.ts +++ b/src/cache-save.ts @@ -33,6 +33,10 @@ const cachePackages = async (packageManager: string) => { core.debug(`Caching for '${packageManager}' is not supported`); return; } + if (core.getInput('cache-restore-only') == 'true') { + core.info(`Cache was not saved since 'cache-restore-only' was set to true`); + return; + } if (!cachePaths.length) { // TODO: core.getInput has a bug - it can return undefined despite its definition (tests only?)