From 40509ec00131554bce93071a3c3ed77e5b93a4d5 Mon Sep 17 00:00:00 2001 From: Marco Ippolito <marcoippolito54@gmail.com> Date: Thu, 27 Mar 2025 14:29:32 +0100 Subject: [PATCH] chore: change fallback message with mirrors --- __tests__/official-installer.test.ts | 37 +++++++++++++++++++ dist/setup/index.js | 8 ++-- .../official_builds/official_builds.ts | 10 ++++- 3 files changed, 49 insertions(+), 6 deletions(-) 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..c43d61fe 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -97519,7 +97519,7 @@ class OfficialBuilds extends base_distribution_1.default { } setupNodeJs() { return __awaiter(this, void 0, void 0, function* () { - var _a; + var _a, _b, _c; let manifest; let nodeJsVersions; const osArch = this.translateArchToDistUrl(this.nodeInfo.arch); @@ -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 ${(_a = this.nodeInfo.mirror) !== null && _a !== void 0 ? _a : 'Node'}`); } } catch (err) { @@ -97576,8 +97576,8 @@ class OfficialBuilds extends base_distribution_1.default { else { core.info(err.message); } - core.debug((_a = err.stack) !== null && _a !== void 0 ? _a : 'empty stack'); - core.info('Falling back to download directly from Node'); + core.debug((_b = err.stack) !== null && _b !== void 0 ? _b : 'empty stack'); + core.info(`Falling back to download directly from ${(_c = this.nodeInfo.mirror) !== null && _c !== void 0 ? _c : 'Node'}`); } if (!toolPath) { toolPath = yield this.downloadDirectlyFromNode(); diff --git a/src/distributions/official_builds/official_builds.ts b/src/distributions/official_builds/official_builds.ts index d78a4966..abd1ede1 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) { @@ -112,7 +114,11 @@ export default class OfficialBuilds extends BaseDistribution { core.info((err as Error).message); } core.debug((err as Error).stack ?? 'empty stack'); - core.info('Falling back to download directly from Node'); + core.info( + `Falling back to download directly from ${ + this.nodeInfo.mirror ?? 'Node' + }` + ); } if (!toolPath) {