diff --git a/__tests__/official-installer.test.ts b/__tests__/official-installer.test.ts index 6b471c5d..f23183d3 100644 --- a/__tests__/official-installer.test.ts +++ b/__tests__/official-installer.test.ts @@ -282,6 +282,43 @@ describe('setup-node', () => { expect(cnSpy).toHaveBeenCalledWith(`::add-path::${expPath}${osm.EOL}`); }); + it('falls back to a version from node dist from mirror', async () => { + os.platform = 'linux'; + os.arch = 'x64'; + + // a version which is not in the manifest but is in node dist + const versionSpec = '11.15.0'; + const mirror = 'https://my_mirror_url'; + inputs['node-version'] = versionSpec; + inputs['always-auth'] = false; + inputs['token'] = 'faketoken'; + inputs['mirror'] = mirror; + inputs['mirror-token'] = 'faketoken'; + + // ... but not in the local cache + findSpy.mockImplementation(() => ''); + + dlSpy.mockImplementation(async () => '/some/temp/path'); + const toolPath = path.normalize('/cache/node/11.15.0/x64'); + exSpy.mockImplementation(async () => '/some/other/temp/path'); + cacheSpy.mockImplementation(async () => toolPath); + + await main.run(); + + const expPath = path.join(toolPath, 'bin'); + + expect(getManifestSpy).toHaveBeenCalled(); + expect(logSpy).toHaveBeenCalledWith( + `Attempting to download ${versionSpec}...` + ); + expect(logSpy).toHaveBeenCalledWith( + `Not found in manifest. Falling back to download directly from ${mirror}` + ); + expect(dlSpy).toHaveBeenCalled(); + expect(exSpy).toHaveBeenCalled(); + expect(cnSpy).toHaveBeenCalledWith(`::add-path::${expPath}${osm.EOL}`); + }); + it('falls back to a version from node dist', async () => { os.platform = 'linux'; os.arch = 'x64'; diff --git a/dist/setup/index.js b/dist/setup/index.js index 0207df45..6e5aceea 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -97564,7 +97564,7 @@ class OfficialBuilds extends base_distribution_1.default { } } else { - core.info('Not found in manifest. Falling back to download directly from Node'); + core.info(`Not found in manifest. Falling back to download directly from ${this.nodeInfo.mirror || 'Node'}`); } } catch (err) { diff --git a/src/distributions/official_builds/official_builds.ts b/src/distributions/official_builds/official_builds.ts index d78a4966..62999c33 100644 --- a/src/distributions/official_builds/official_builds.ts +++ b/src/distributions/official_builds/official_builds.ts @@ -96,7 +96,9 @@ export default class OfficialBuilds extends BaseDistribution { } } else { core.info( - 'Not found in manifest. Falling back to download directly from Node' + `Not found in manifest. Falling back to download directly from ${ + this.nodeInfo.mirror || 'Node' + }` ); } } catch (err) {