diff --git a/dist/setup/index.js b/dist/setup/index.js index 6e16a2e..a494179 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -63234,7 +63234,18 @@ function getGo(versionSpec, checkLatest, auth, arch = os_1.default.arch()) { if (versionSpec === utils_1.StableReleaseAlias.Stable || versionSpec === utils_1.StableReleaseAlias.OldStable) { manifest = yield getManifest(auth); - versionSpec = yield resolveStableVersionInput(versionSpec, arch, osPlat, manifest); + let stableVersion = yield resolveStableVersionInput(versionSpec, arch, osPlat, manifest); + if (!stableVersion) { + const dlUrl = 'https://golang.org/dl/?mode=json&include=all'; + let candidates = yield module.exports.getVersionsDist(dlUrl); + if (!candidates) { + throw new Error(`golang download url did not return results`); + } + const fixedCandidates = candidates.map(item => { + return Object.assign(Object.assign({}, item), { version: makeSemver(item.version) }); + }); + stableVersion = yield resolveStableVersionInput(versionSpec, arch, osPlat, fixedCandidates); + } } if (checkLatest) { core.info('Attempting to resolve the latest version from the manifest...'); @@ -63400,13 +63411,6 @@ function findMatch(versionSpec, arch = os_1.default.arch()) { if (!candidates) { throw new Error(`golang download url did not return results`); } - if (versionSpec === utils_1.StableReleaseAlias.Stable || - versionSpec === utils_1.StableReleaseAlias.OldStable) { - const fixedCandidates = candidates.map(item => { - return Object.assign(Object.assign({}, item), { version: makeSemver(item.version) }); - }); - versionSpec = yield resolveStableVersionInput(versionSpec, archFilter, platFilter, fixedCandidates); - } let goFile; for (let i = 0; i < candidates.length; i++) { let candidate = candidates[i]; @@ -63480,7 +63484,6 @@ function parseGoVersionFile(versionFilePath) { } exports.parseGoVersionFile = parseGoVersionFile; function resolveStableVersionInput(versionSpec, arch, platform, manifest) { - var _a; return __awaiter(this, void 0, void 0, function* () { const releases = manifest .map(item => { @@ -63493,16 +63496,13 @@ function resolveStableVersionInput(versionSpec, arch, platform, manifest) { .filter(item => !!item && !semver.prerelease(item)); if (versionSpec === utils_1.StableReleaseAlias.Stable) { core.info(`stable version resolved as ${releases[0]}`); - return (_a = releases[0]) !== null && _a !== void 0 ? _a : versionSpec; + return releases[0]; } else { const versions = releases.map(release => `${semver.major(release)}.${semver.minor(release)}`); const uniqueVersions = Array.from(new Set(versions)); const oldstableVersion = releases.find(item => item.startsWith(uniqueVersions[1])); core.info(`oldstable version resolved as ${oldstableVersion}`); - if (!oldstableVersion) { - return versionSpec; - } return oldstableVersion; } }); diff --git a/src/installer.ts b/src/installer.ts index 9be22a9..acea2ba 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -44,12 +44,36 @@ export async function getGo( versionSpec === StableReleaseAlias.OldStable ) { manifest = await getManifest(auth); - versionSpec = await resolveStableVersionInput( + let stableVersion = await resolveStableVersionInput( versionSpec, arch, osPlat, manifest ); + + if (!stableVersion) { + const dlUrl: string = 'https://golang.org/dl/?mode=json&include=all'; + let candidates: + | IGoVersion[] + | null = await module.exports.getVersionsDist(dlUrl); + if (!candidates) { + throw new Error(`golang download url did not return results`); + } + + const fixedCandidates = candidates.map(item => { + return { + ...item, + version: makeSemver(item.version) + }; + }); + + stableVersion = await resolveStableVersionInput( + versionSpec, + arch, + osPlat, + fixedCandidates + ); + } } if (checkLatest) { @@ -267,24 +291,6 @@ export async function findMatch( throw new Error(`golang download url did not return results`); } - if ( - versionSpec === StableReleaseAlias.Stable || - versionSpec === StableReleaseAlias.OldStable - ) { - const fixedCandidates = candidates.map(item => { - return { - ...item, - version: makeSemver(item.version) - }; - }); - versionSpec = await resolveStableVersionInput( - versionSpec, - archFilter, - platFilter, - fixedCandidates - ); - } - let goFile: IGoVersionFile | undefined; for (let i = 0; i < candidates.length; i++) { let candidate: IGoVersion = candidates[i]; @@ -378,7 +384,7 @@ export async function resolveStableVersionInput( arch: string, platform: string, manifest: tc.IToolRelease[] | IGoVersion[] -): Promise { +) { const releases = manifest .map(item => { const index = item.files.findIndex( @@ -394,7 +400,7 @@ export async function resolveStableVersionInput( if (versionSpec === StableReleaseAlias.Stable) { core.info(`stable version resolved as ${releases[0]}`); - return releases[0] ?? versionSpec; + return releases[0]; } else { const versions = releases.map( release => `${semver.major(release)}.${semver.minor(release)}` @@ -407,10 +413,6 @@ export async function resolveStableVersionInput( core.info(`oldstable version resolved as ${oldstableVersion}`); - if (!oldstableVersion) { - return versionSpec; - } - return oldstableVersion; } }