TODO: Check functionality and fix tests

Update: README, action file
This commit is contained in:
Sergey-Murtazin 2022-01-19 17:47:56 +03:00
parent e461af0410
commit c65923e013
5 changed files with 206 additions and 2 deletions

View file

@ -31,10 +31,26 @@ export interface IGoVersionInfo {
export async function getGo(
versionSpec: string,
stable: boolean,
checkLatest: boolean,
auth: string | undefined
) {
let osPlat: string = os.platform();
let osArch: string = os.arch();
if (checkLatest) {
core.info('Attempt to resolve the latest version from manifest...');
const resolvedVersion = await resolveVersionFromManifest(
versionSpec,
stable,
auth
);
if (resolvedVersion) {
versionSpec = resolvedVersion;
core.info(`Resolved as '${versionSpec}'`);
} else {
core.info(`Failed to resolve version ${versionSpec} from manifest`);
}
}
// check cache
let toolPath: string;
@ -97,6 +113,20 @@ export async function getGo(
return downloadPath;
}
async function resolveVersionFromManifest(
versionSpec: string,
stable: boolean,
auth: string | undefined
): Promise<string | undefined> {
try {
const info = await getInfoFromManifest(versionSpec, stable, auth);
return info?.resolvedVersion;
} catch (err) {
core.info('Unable to resolve version from manifest...');
core.debug(err.message);
}
}
async function installGoVersion(
info: IGoVersionInfo,
auth: string | undefined

View file

@ -24,7 +24,9 @@ export async function run() {
let token = core.getInput('token');
let auth = !token || isGhes() ? undefined : `token ${token}`;
const installDir = await installer.getGo(versionSpec, stable, auth);
const checkLatest =
(core.getInput('check-latest') || 'false').toUpperCase() === 'TRUE';
const installDir = await installer.getGo(versionSpec, stable, checkLatest, auth);
core.exportVariable('GOROOT', installDir);
core.addPath(path.join(installDir, 'bin'));