From 28cfea2580d23091e6b93c69b09c4d232a2d7d39 Mon Sep 17 00:00:00 2001 From: Sergey Dolin Date: Tue, 25 Jul 2023 19:29:37 +0200 Subject: [PATCH] cache-restore-only --- action.yml | 3 +++ dist/cache-save/index.js | 7 +++++++ dist/setup/index.js | 6 ++++++ src/cache-save.ts | 4 ++++ src/constants.ts | 5 ++++- src/main.ts | 6 ++++++ 6 files changed, 30 insertions(+), 1 deletion(-) diff --git a/action.yml b/action.yml index 12b47b697..8ef2bb8ff 100644 --- a/action.yml +++ b/action.yml @@ -17,6 +17,9 @@ inputs: default: true cache-dependency-path: description: 'Used to specify the path to a dependency file - go.sum' + cache-restore-only: + description: Used to specify the cache . Set to true, if you'd like to reuse existing cache but did not update it + default: false architecture: description: 'Target architecture for Go to use. Examples: x86, x64. Will use system architecture by default.' outputs: diff --git a/dist/cache-save/index.js b/dist/cache-save/index.js index c1161a721..be37fb1d3 100644 --- a/dist/cache-save/index.js +++ b/dist/cache-save/index.js @@ -58457,6 +58457,10 @@ process.on('uncaughtException', e => { }); function run() { return __awaiter(this, void 0, void 0, function* () { + if (core.getState(constants_1.State.CacheRestoreOnly) === constants_1.State.True) { + core.info('"cache-restore-only" set to true, skip caching'); + return; + } try { yield cachePackages(); } @@ -58622,6 +58626,9 @@ var State; (function (State) { State["CachePrimaryKey"] = "CACHE_KEY"; State["CacheMatchedKey"] = "CACHE_RESULT"; + State["CacheRestoreOnly"] = "CACHE_RESTORE_ONLY"; + State["True"] = "true"; + State["False"] = "false"; })(State = exports.State || (exports.State = {})); var Outputs; (function (Outputs) { diff --git a/dist/setup/index.js b/dist/setup/index.js index 378197f56..b929398f1 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -61292,6 +61292,9 @@ var State; (function (State) { State["CachePrimaryKey"] = "CACHE_KEY"; State["CacheMatchedKey"] = "CACHE_RESULT"; + State["CacheRestoreOnly"] = "CACHE_RESTORE_ONLY"; + State["True"] = "true"; + State["False"] = "false"; })(State = exports.State || (exports.State = {})); var Outputs; (function (Outputs) { @@ -61690,6 +61693,7 @@ const cache_utils_1 = __nccwpck_require__(1678); const child_process_1 = __importDefault(__nccwpck_require__(2081)); const fs_1 = __importDefault(__nccwpck_require__(7147)); const os_1 = __importDefault(__nccwpck_require__(2037)); +const constants_1 = __nccwpck_require__(9042); function run() { return __awaiter(this, void 0, void 0, function* () { try { @@ -61727,6 +61731,8 @@ function run() { core.debug(`add bin ${added}`); const goPath = yield io.which('go'); const goVersion = (child_process_1.default.execSync(`${goPath} version`) || '').toString(); + const cacheRestoreOnly = core.getBooleanInput('cache-restore-only'); + core.saveState(constants_1.State.CacheRestoreOnly, cacheRestoreOnly ? constants_1.State.True : constants_1.State.False); if (cache && cache_utils_1.isCacheFeatureAvailable()) { const packageManager = 'default'; const cacheDependencyPath = core.getInput('cache-dependency-path'); diff --git a/src/cache-save.ts b/src/cache-save.ts index 584d0a697..7738044b7 100644 --- a/src/cache-save.ts +++ b/src/cache-save.ts @@ -13,6 +13,10 @@ process.on('uncaughtException', e => { }); export async function run() { + if (core.getState(State.CacheRestoreOnly) === State.True) { + core.info('"cache-restore-only" set to true, skip caching'); + return; + } try { await cachePackages(); } catch (error) { diff --git a/src/constants.ts b/src/constants.ts index b43d18c00..cdad255a0 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1,6 +1,9 @@ export enum State { CachePrimaryKey = 'CACHE_KEY', - CacheMatchedKey = 'CACHE_RESULT' + CacheMatchedKey = 'CACHE_RESULT', + CacheRestoreOnly = 'CACHE_RESTORE_ONLY', + True = 'true', + False = 'false' } export enum Outputs { diff --git a/src/main.ts b/src/main.ts index d3fb857df..a75f26b85 100644 --- a/src/main.ts +++ b/src/main.ts @@ -8,6 +8,7 @@ import {isCacheFeatureAvailable} from './cache-utils'; import cp from 'child_process'; import fs from 'fs'; import os from 'os'; +import {State} from './constants'; export async function run() { try { @@ -64,6 +65,11 @@ export async function run() { const goPath = await io.which('go'); const goVersion = (cp.execSync(`${goPath} version`) || '').toString(); + const cacheRestoreOnly = core.getBooleanInput('cache-restore-only'); + core.saveState( + State.CacheRestoreOnly, + cacheRestoreOnly ? State.True : State.False + ); if (cache && isCacheFeatureAvailable()) { const packageManager = 'default'; const cacheDependencyPath = core.getInput('cache-dependency-path');