diff --git a/src/cache-save.ts b/src/cache-save.ts index 24565a8e..ede5d83c 100644 --- a/src/cache-save.ts +++ b/src/cache-save.ts @@ -17,7 +17,7 @@ export async function run() { const cacheLock = core.getInput('cache'); await cachePackages(cacheLock); } catch (error) { - core.setFailed(error.message); + core.setFailed((error as Error).message); } } diff --git a/src/cache-utils.ts b/src/cache-utils.ts index ccd4e987..901d199e 100644 --- a/src/cache-utils.ts +++ b/src/cache-utils.ts @@ -47,17 +47,35 @@ export const getCommandOutput = async (toolCommand: string) => { return stdout.trim(); }; +const resolvePackageManagerVersionInput = ( + packageManager: string +): string | undefined => { + let version = core.getInput(`${packageManager}-version`); + + if (version !== '') { + core.info(`Using ${packageManager} with version ${version}.`); + + return version; + } +}; + const getPackageManagerVersion = async ( packageManager: string, command: string ) => { - const stdOut = await getCommandOutput(`${packageManager} ${command}`); + let packageManagerVersion = resolvePackageManagerVersionInput(packageManager); - if (!stdOut) { - throw new Error(`Could not retrieve version of ${packageManager}`); + if (packageManagerVersion) { + return packageManagerVersion; + } else { + const stdOut = await getCommandOutput(`${packageManager} ${command}`); + + if (!stdOut) { + throw new Error(`Could not retrieve version of ${packageManager}`); + } + + return stdOut; } - - return stdOut; }; export const getPackageManagerInfo = async (packageManager: string) => { diff --git a/src/installer.ts b/src/installer.ts index 193ff16a..8128a7dc 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -116,9 +116,9 @@ export async function getNode( `Received HTTP status code ${err.httpStatusCode}. This usually indicates the rate limit has been exceeded` ); } else { - core.info(err.message); + core.info((err as Error).message); } - core.debug(err.stack); + core.debug((err as Error).stack!); core.info('Falling back to download directly from Node'); } @@ -334,7 +334,7 @@ async function resolveVersionFromManifest( return info?.resolvedVersion; } catch (err) { core.info('Unable to resolve version from manifest...'); - core.debug(err.message); + core.debug((err as Error).message); } } diff --git a/src/main.ts b/src/main.ts index ac7e51f5..41dcf844 100644 --- a/src/main.ts +++ b/src/main.ts @@ -72,7 +72,7 @@ export async function run() { `##[add-matcher]${path.join(matchersPath, 'eslint-compact.json')}` ); } catch (err) { - core.setFailed(err.message); + core.setFailed((err as Error).message); } }