From 34050076a5a3fa9bd791b9b40860d11d9421c7fa Mon Sep 17 00:00:00 2001 From: Dmitry Shibanov Date: Thu, 13 Jul 2023 14:03:41 +0200 Subject: [PATCH] Add check for existing paths (#803) --- .github/workflows/e2e-cache.yml | 2 +- dist/cache-save/index.js | 9 +++++++-- src/cache-save.ts | 10 ++++++++-- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/.github/workflows/e2e-cache.yml b/.github/workflows/e2e-cache.yml index c8324ee1..ba3af16b 100644 --- a/.github/workflows/e2e-cache.yml +++ b/.github/workflows/e2e-cache.yml @@ -173,7 +173,7 @@ jobs: - uses: actions/checkout@v3 - name: prepare sub-projects - run: __tests__/prepare-yarn-subprojects.sh + run: __tests__/prepare-yarn-subprojects.sh keepcache keepcache # expect # - no errors diff --git a/dist/cache-save/index.js b/dist/cache-save/index.js index 44b82f82..2db4b660 100644 --- a/dist/cache-save/index.js +++ b/dist/cache-save/index.js @@ -60361,10 +60361,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.run = void 0; const core = __importStar(__nccwpck_require__(2186)); const cache = __importStar(__nccwpck_require__(7799)); +const fs_1 = __importDefault(__nccwpck_require__(7147)); const constants_1 = __nccwpck_require__(9042); const cache_utils_1 = __nccwpck_require__(1678); // Catch and log any unhandled exceptions. These exceptions can leak out of the uploadChunk method in @@ -60389,13 +60393,14 @@ exports.run = run; const cachePackages = (packageManager) => __awaiter(void 0, void 0, void 0, function* () { const state = core.getState(constants_1.State.CacheMatchedKey); const primaryKey = core.getState(constants_1.State.CachePrimaryKey); - const cachePaths = JSON.parse(core.getState(constants_1.State.CachePaths) || '[]'); + let cachePaths = JSON.parse(core.getState(constants_1.State.CachePaths) || '[]'); + cachePaths = cachePaths.filter(fs_1.default.existsSync); const packageManagerInfo = yield cache_utils_1.getPackageManagerInfo(packageManager); if (!packageManagerInfo) { core.debug(`Caching for '${packageManager}' is not supported`); return; } - if (cachePaths.length === 0) { + 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; const cacheDependencyPath = core.getInput('cache-dependency-path') || ''; diff --git a/src/cache-save.ts b/src/cache-save.ts index 96f6a7d4..9449fb85 100644 --- a/src/cache-save.ts +++ b/src/cache-save.ts @@ -1,5 +1,8 @@ import * as core from '@actions/core'; import * as cache from '@actions/cache'; + +import fs from 'fs'; + import {State} from './constants'; import {getPackageManagerInfo} from './cache-utils'; @@ -23,7 +26,10 @@ export async function run() { const cachePackages = async (packageManager: string) => { const state = core.getState(State.CacheMatchedKey); const primaryKey = core.getState(State.CachePrimaryKey); - const cachePaths = JSON.parse(core.getState(State.CachePaths) || '[]'); + let cachePaths = JSON.parse( + core.getState(State.CachePaths) || '[]' + ) as string[]; + cachePaths = cachePaths.filter(fs.existsSync); const packageManagerInfo = await getPackageManagerInfo(packageManager); if (!packageManagerInfo) { @@ -31,7 +37,7 @@ const cachePackages = async (packageManager: string) => { return; } - if (cachePaths.length === 0) { + 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; const cacheDependencyPath = core.getInput('cache-dependency-path') || '';