diff --git a/dist/cache-save/index.js b/dist/cache-save/index.js index 9019f23..f2e55aa 100644 --- a/dist/cache-save/index.js +++ b/dist/cache-save/index.js @@ -4036,14 +4036,10 @@ exports.getPackageManagerInfo = (packageManager) => __awaiter(void 0, void 0, vo return obtainedPackageManager; }); exports.getCacheDirectoryPath = (packageManagerInfo) => __awaiter(void 0, void 0, void 0, function* () { - let pathList = []; - for (let command of packageManagerInfo.cacheFolderCommandList) { - pathList.push(yield exports.getCommandOutput(command)); - } - for (let path of pathList) { - if (!path) { - throw new Error(`Could not get cache folder paths.`); - } + let pathList = yield Promise.all(packageManagerInfo.cacheFolderCommandList.map((command) => __awaiter(void 0, void 0, void 0, function* () { return exports.getCommandOutput(command); }))); + const emptyPaths = pathList.filter(item => !item); + if (emptyPaths.length) { + throw new Error(`Could not get cache folder paths.`); } return pathList; }); @@ -49173,7 +49169,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.run = void 0; +exports.logWarning = exports.run = void 0; const core = __importStar(__webpack_require__(470)); const cache = __importStar(__webpack_require__(692)); const fs_1 = __importDefault(__webpack_require__(747)); @@ -49206,18 +49202,23 @@ const cachePackages = () => __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 packageManagerInfo = yield cache_utils_1.getPackageManagerInfo(packageManager); - const cachePath = yield cache_utils_1.getCacheDirectoryPath(packageManagerInfo); - for (let path of cachePath) { + const cachePaths = yield cache_utils_1.getCacheDirectoryPath(packageManagerInfo); + let pathsCounter = cachePaths.length; + for (let path of cachePaths) { if (!fs_1.default.existsSync(path)) { - throw new Error(`Cache folder path is retrieved but doesn't exist on disk: ${path}`); + logWarning(`Cache folder path is retrieved but doesn't exist on disk: ${path}`); + pathsCounter--; } } + if (!pathsCounter) { + throw `Cache folder paths are retrieved but don't exist on disk`; + } if (primaryKey === state) { core.info(`Cache hit occurred on the primary key ${primaryKey}, not saving cache.`); return; } try { - yield cache.saveCache(cachePath, primaryKey); + yield cache.saveCache(cachePaths, primaryKey); core.info(`Cache saved with the key: ${primaryKey}`); } catch (error) { @@ -49232,6 +49233,11 @@ const cachePackages = () => __awaiter(void 0, void 0, void 0, function* () { } } }); +function logWarning(message) { + const warningPrefix = '[warning]'; + core.info(`${warningPrefix}${message}`); +} +exports.logWarning = logWarning; run(); diff --git a/dist/setup/index.js b/dist/setup/index.js index 048a968..c495782 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -4298,14 +4298,10 @@ exports.getPackageManagerInfo = (packageManager) => __awaiter(void 0, void 0, vo return obtainedPackageManager; }); exports.getCacheDirectoryPath = (packageManagerInfo) => __awaiter(void 0, void 0, void 0, function* () { - let pathList = []; - for (let command of packageManagerInfo.cacheFolderCommandList) { - pathList.push(yield exports.getCommandOutput(command)); - } - for (let path of pathList) { - if (!path) { - throw new Error(`Could not get cache folder paths.`); - } + let pathList = yield Promise.all(packageManagerInfo.cacheFolderCommandList.map((command) => __awaiter(void 0, void 0, void 0, function* () { return exports.getCommandOutput(command); }))); + const emptyPaths = pathList.filter(item => !item); + if (emptyPaths.length) { + throw new Error(`Could not get cache folder paths.`); } return pathList; }); @@ -37253,7 +37249,7 @@ exports.restoreCache = (packageManager, cacheDependencyPath) => __awaiter(void 0 const packageManagerInfo = yield cache_utils_1.getPackageManagerInfo(packageManager); const platform = process.env.RUNNER_OS; const versionSpec = core.getInput('go-version'); - const cachePath = yield cache_utils_1.getCacheDirectoryPath(packageManagerInfo); + const cachePaths = yield cache_utils_1.getCacheDirectoryPath(packageManagerInfo); const dependencyFilePath = cacheDependencyPath ? cacheDependencyPath : findDependencyFile(packageManagerInfo); @@ -37264,7 +37260,7 @@ exports.restoreCache = (packageManager, cacheDependencyPath) => __awaiter(void 0 const primaryKey = `${platform}-go${versionSpec}-${fileHash}`; core.debug(`primary key is ${primaryKey}`); core.saveState(constants_1.State.CachePrimaryKey, primaryKey); - const cacheKey = yield cache.restoreCache(cachePath, primaryKey); + const cacheKey = yield cache.restoreCache(cachePaths, primaryKey); core.setOutput('cache-hit', Boolean(cacheKey)); if (!cacheKey) { core.info(`Cache is not found`); diff --git a/src/cache-restore.ts b/src/cache-restore.ts index 84bbe8c..1e1f703 100644 --- a/src/cache-restore.ts +++ b/src/cache-restore.ts @@ -16,7 +16,7 @@ export const restoreCache = async ( const platform = process.env.RUNNER_OS; const versionSpec = core.getInput('go-version'); - const cachePath = await getCacheDirectoryPath(packageManagerInfo); + const cachePaths = await getCacheDirectoryPath(packageManagerInfo); const dependencyFilePath = cacheDependencyPath ? cacheDependencyPath @@ -34,7 +34,7 @@ export const restoreCache = async ( core.saveState(State.CachePrimaryKey, primaryKey); - const cacheKey = await cache.restoreCache(cachePath, primaryKey); + const cacheKey = await cache.restoreCache(cachePaths, primaryKey); core.setOutput('cache-hit', Boolean(cacheKey)); if (!cacheKey) { diff --git a/src/cache-save.ts b/src/cache-save.ts index 22cc6a9..10f76f3 100644 --- a/src/cache-save.ts +++ b/src/cache-save.ts @@ -33,16 +33,23 @@ const cachePackages = async () => { const packageManagerInfo = await getPackageManagerInfo(packageManager); - const cachePath = await getCacheDirectoryPath(packageManagerInfo); + const cachePaths = await getCacheDirectoryPath(packageManagerInfo); - for (let path of cachePath) { + let pathsCounter = cachePaths.length; + + for (let path of cachePaths) { if (!fs.existsSync(path)) { - throw new Error( + logWarning( `Cache folder path is retrieved but doesn't exist on disk: ${path}` ); + pathsCounter--; } } + if (!pathsCounter) { + throw `Cache folder paths are retrieved but don't exist on disk`; + } + if (primaryKey === state) { core.info( `Cache hit occurred on the primary key ${primaryKey}, not saving cache.` @@ -51,7 +58,7 @@ const cachePackages = async () => { } try { - await cache.saveCache(cachePath, primaryKey); + await cache.saveCache(cachePaths, primaryKey); core.info(`Cache saved with the key: ${primaryKey}`); } catch (error) { if (error.name === cache.ValidationError.name) { @@ -64,4 +71,9 @@ const cachePackages = async () => { } }; +export function logWarning(message: string): void { + const warningPrefix = '[warning]'; + core.info(`${warningPrefix}${message}`); +} + run(); diff --git a/src/cache-utils.ts b/src/cache-utils.ts index 7e74996..ee14881 100644 --- a/src/cache-utils.ts +++ b/src/cache-utils.ts @@ -1,6 +1,7 @@ import * as cache from '@actions/cache'; import * as core from '@actions/core'; import * as exec from '@actions/exec'; +import path from 'path'; import {supportedPackageManagers, PackageManagerInfo} from './package-managers'; export const getCommandOutput = async (toolCommand: string) => { @@ -34,16 +35,16 @@ export const getPackageManagerInfo = async (packageManager: string) => { export const getCacheDirectoryPath = async ( packageManagerInfo: PackageManagerInfo ) => { - let pathList: string[] = []; + let pathList = await Promise.all( + packageManagerInfo.cacheFolderCommandList.map(async command => + getCommandOutput(command) + ) + ); - for (let command of packageManagerInfo.cacheFolderCommandList) { - pathList.push(await getCommandOutput(command)); - } + const emptyPaths = pathList.filter(item => !item); - for (let path of pathList) { - if (!path) { - throw new Error(`Could not get cache folder paths.`); - } + if (emptyPaths.length) { + throw new Error(`Could not get cache folder paths.`); } return pathList;