fix(cache): Not throw err if no cache folders

This commit is contained in:
Evgenii Korolevskii 2022-09-08 13:18:41 +02:00
parent be45b2722d
commit 5547b9ed8d
2 changed files with 17 additions and 18 deletions

View file

@ -98,15 +98,15 @@ describe('setup-go', () => {
logSpy = jest.spyOn(core, 'info'); logSpy = jest.spyOn(core, 'info');
dbgSpy = jest.spyOn(core, 'debug'); dbgSpy = jest.spyOn(core, 'debug');
getSpy.mockImplementation(() => <im.IGoVersion[] | null>goJsonData); getSpy.mockImplementation(() => <im.IGoVersion[] | null>goJsonData);
cnSpy.mockImplementation(line => { cnSpy.mockImplementation((line) => {
// uncomment to debug // uncomment to debug
// process.stderr.write('write:' + line + '\n'); // process.stderr.write('write:' + line + '\n');
}); });
logSpy.mockImplementation(line => { logSpy.mockImplementation((line) => {
// uncomment to debug // uncomment to debug
//process.stderr.write('log:' + line + '\n'); //process.stderr.write('log:' + line + '\n');
}); });
dbgSpy.mockImplementation(msg => { dbgSpy.mockImplementation((line) => {
// uncomment to see debug output // uncomment to see debug output
// process.stderr.write(msg + '\n'); // process.stderr.write(msg + '\n');
}); });
@ -295,7 +295,6 @@ describe('setup-go', () => {
findSpy.mockImplementation(() => toolPath); findSpy.mockImplementation(() => toolPath);
await main.run(); await main.run();
let expPath = path.join(toolPath, 'bin');
expect(logSpy).toHaveBeenCalledWith(`Found in cache @ ${toolPath}`); expect(logSpy).toHaveBeenCalledWith(`Found in cache @ ${toolPath}`);
}); });
@ -462,9 +461,6 @@ describe('setup-go', () => {
inputs['go-version'] = versionSpec; inputs['go-version'] = versionSpec;
inputs['token'] = 'faketoken'; inputs['token'] = 'faketoken';
let expectedUrl =
'https://github.com/actions/go-versions/releases/download/1.12.14-20200616.18/go-1.12.14-linux-x64.tar.gz';
// ... but not in the local cache // ... but not in the local cache
findSpy.mockImplementation(() => ''); findSpy.mockImplementation(() => '');
@ -526,7 +522,7 @@ describe('setup-go', () => {
}); });
mkdirpSpy.mockImplementation(async () => {}); mkdirpSpy.mockImplementation(async () => {});
existsSpy.mockImplementation(path => { existsSpy.mockImplementation(() => {
return false; return false;
}); });
@ -707,8 +703,6 @@ describe('setup-go', () => {
const toolPath = path.normalize('/cache/go/1.17.5/x64'); const toolPath = path.normalize('/cache/go/1.17.5/x64');
extractTarSpy.mockImplementation(async () => '/some/other/temp/path'); extractTarSpy.mockImplementation(async () => '/some/other/temp/path');
cacheSpy.mockImplementation(async () => toolPath); cacheSpy.mockImplementation(async () => toolPath);
const expectedUrl =
'https://github.com/actions/go-versions/releases/download/1.17.6-1668090892/go-1.17.6-darwin-x64.tar.gz';
await main.run(); await main.run();
@ -834,7 +828,7 @@ exclude example.com/thismodule v1.3.0
it('reads version from go.mod', async () => { it('reads version from go.mod', async () => {
inputs['go-version-file'] = 'go.mod'; inputs['go-version-file'] = 'go.mod';
existsSpy.mockImplementation(path => true); existsSpy.mockImplementation(() => true);
readFileSpy.mockImplementation(() => Buffer.from(goModContents)); readFileSpy.mockImplementation(() => Buffer.from(goModContents));
await main.run(); await main.run();
@ -846,7 +840,7 @@ exclude example.com/thismodule v1.3.0
it('reads version from .go-version', async () => { it('reads version from .go-version', async () => {
inputs['go-version-file'] = '.go-version'; inputs['go-version-file'] = '.go-version';
existsSpy.mockImplementation(path => true); existsSpy.mockImplementation(() => true);
readFileSpy.mockImplementation(() => Buffer.from(`1.13.0${osm.EOL}`)); readFileSpy.mockImplementation(() => Buffer.from(`1.13.0${osm.EOL}`));
await main.run(); await main.run();
@ -859,7 +853,7 @@ exclude example.com/thismodule v1.3.0
it('is overwritten by go-version', async () => { it('is overwritten by go-version', async () => {
inputs['go-version'] = '1.13.1'; inputs['go-version'] = '1.13.1';
inputs['go-version-file'] = 'go.mod'; inputs['go-version-file'] = 'go.mod';
existsSpy.mockImplementation(path => true); existsSpy.mockImplementation(() => true);
readFileSpy.mockImplementation(() => Buffer.from(goModContents)); readFileSpy.mockImplementation(() => Buffer.from(goModContents));
await main.run(); await main.run();
@ -871,7 +865,7 @@ exclude example.com/thismodule v1.3.0
it('reports a read failure', async () => { it('reports a read failure', async () => {
inputs['go-version-file'] = 'go.mod'; inputs['go-version-file'] = 'go.mod';
existsSpy.mockImplementation(path => false); existsSpy.mockImplementation(() => false);
await main.run(); await main.run();

View file

@ -16,7 +16,14 @@ export async function run() {
try { try {
await cachePackages(); await cachePackages();
} catch (error) { } catch (error) {
core.setFailed(error.message); let message = 'Unknown error!';
if (error instanceof Error) {
message = error.message;
}
if (typeof error === 'string') {
message = error;
}
core.setFailed(message);
} }
} }
@ -41,9 +48,7 @@ const cachePackages = async () => {
if (nonExistingPaths.length === cachePaths.length) { if (nonExistingPaths.length === cachePaths.length) {
core.warning(`There are no cache folders on the disk`); core.warning(`There are no cache folders on the disk`);
logWarning(`There are no cache folders on the disk`)
return; return;
throw new Error(`There are no cache folders on the disk`);
} }
if (nonExistingPaths.length) { if (nonExistingPaths.length) {
@ -68,7 +73,7 @@ const cachePackages = async () => {
core.info(`Cache saved with the key: ${primaryKey}`); core.info(`Cache saved with the key: ${primaryKey}`);
}; };
export function logWarning(message: string): void { function logWarning(message: string): void {
const warningPrefix = '[warning]'; const warningPrefix = '[warning]';
core.info(`${warningPrefix}${message}`); core.info(`${warningPrefix}${message}`);
} }