mirror of
https://github.com/actions/setup-go.git
synced 2025-06-29 20:53:43 +00:00
Change behavior of the exception throwing
This commit is contained in:
parent
c64d0e04b0
commit
8c8442b8f8
5 changed files with 52 additions and 37 deletions
|
@ -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) {
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue