setup-go/src/main.ts

42 lines
1.3 KiB
TypeScript
Raw Normal View History

2020-02-09 05:21:39 +00:00
import * as core from '@actions/core';
import * as tc from '@actions/tool-cache';
import * as installer from './installer';
import * as path from 'path';
export async function run() {
try {
//
// versionSpec is optional. If supplied, install / use from the tool cache
// If not supplied then problem matchers will still be setup. Useful for self-hosted.
//
let versionSpec = core.getInput('go-version');
2020-02-09 13:44:32 +00:00
// stable will be true unless false is the exact input
// since getting unstable versions should be explicit
let stable = Boolean(core.getInput('stable') || 'true');
2020-02-09 05:21:39 +00:00
if (versionSpec) {
2020-02-09 05:29:21 +00:00
let installDir: string | undefined = tc.find('go', versionSpec);
2020-02-09 05:21:39 +00:00
2020-02-09 05:29:21 +00:00
if (!installDir) {
installDir = await installer.downloadGo(versionSpec, stable);
}
if (installDir) {
core.exportVariable('GOROOT', installDir);
core.addPath(path.join(installDir, 'bin'));
} else {
throw new Error(
`Could not find a version that satisfied version spec: ${versionSpec}`
);
}
2020-02-09 05:21:39 +00:00
}
// add problem matchers
const matchersPath = path.join(__dirname, '..', 'matchers.json');
console.log(`##[add-matcher]${matchersPath}`);
} catch (error) {
core.setFailed(error.message);
}
2020-02-09 05:29:21 +00:00
}