mirror of
https://github.com/actions/setup-go.git
synced 2025-07-16 20:15:14 -06:00
update setup go task to use releases
This commit is contained in:
parent
0f551ac199
commit
ddc76880cc
10 changed files with 4041 additions and 9876 deletions
47
src/main.ts
47
src/main.ts
|
@ -1,10 +1,10 @@
|
|||
import * as core from '@actions/core';
|
||||
import * as io from '@actions/io';
|
||||
import * as tc from '@actions/tool-cache';
|
||||
import * as installer from './installer';
|
||||
import path from 'path';
|
||||
import cp from 'child_process';
|
||||
import fs from 'fs';
|
||||
import {URL} from 'url';
|
||||
|
||||
export async function run() {
|
||||
try {
|
||||
|
@ -23,28 +23,18 @@ export async function run() {
|
|||
);
|
||||
|
||||
if (versionSpec) {
|
||||
let installDir: string | undefined = tc.find('go', versionSpec);
|
||||
let token = core.getInput('token');
|
||||
let auth = !token || isGhes() ? undefined : `token ${token}`;
|
||||
|
||||
if (!installDir) {
|
||||
console.log(
|
||||
`A version satisfying ${versionSpec} not found locally, attempting to download ...`
|
||||
);
|
||||
installDir = await installer.downloadGo(versionSpec, stable);
|
||||
console.log('Installed');
|
||||
}
|
||||
const installDir = await installer.getGo(versionSpec, stable, auth);
|
||||
|
||||
if (installDir) {
|
||||
core.exportVariable('GOROOT', installDir);
|
||||
core.addPath(path.join(installDir, 'bin'));
|
||||
console.log('Added go to the path');
|
||||
core.exportVariable('GOROOT', installDir);
|
||||
core.addPath(path.join(installDir, 'bin'));
|
||||
console.log('Added go to the path');
|
||||
|
||||
let added = addBinToPath();
|
||||
core.debug(`add bin ${added}`);
|
||||
} else {
|
||||
throw new Error(
|
||||
`Could not find a version that satisfied version spec: ${versionSpec}`
|
||||
);
|
||||
}
|
||||
let added = addBinToPath();
|
||||
core.debug(`add bin ${added}`);
|
||||
console.log('Done');
|
||||
}
|
||||
|
||||
// add problem matchers
|
||||
|
@ -68,25 +58,25 @@ export async function run() {
|
|||
export async function addBinToPath(): Promise<boolean> {
|
||||
let added = false;
|
||||
let g = await io.which('go');
|
||||
_debug(`which go :${g}:`);
|
||||
core.debug(`which go :${g}:`);
|
||||
if (!g) {
|
||||
_debug('go not in the path');
|
||||
core.debug('go not in the path');
|
||||
return added;
|
||||
}
|
||||
|
||||
let buf = cp.execSync('go env GOPATH');
|
||||
if (buf) {
|
||||
let gp = buf.toString().trim();
|
||||
_debug(`go env GOPATH :${gp}:`);
|
||||
core.debug(`go env GOPATH :${gp}:`);
|
||||
if (!fs.existsSync(gp)) {
|
||||
// some of the hosted images have go install but not profile dir
|
||||
_debug(`creating ${gp}`);
|
||||
core.debug(`creating ${gp}`);
|
||||
io.mkdirP(gp);
|
||||
}
|
||||
|
||||
let bp = path.join(gp, 'bin');
|
||||
if (!fs.existsSync(bp)) {
|
||||
_debug(`creating ${bp}`);
|
||||
core.debug(`creating ${bp}`);
|
||||
io.mkdirP(bp);
|
||||
}
|
||||
|
||||
|
@ -96,6 +86,9 @@ export async function addBinToPath(): Promise<boolean> {
|
|||
return added;
|
||||
}
|
||||
|
||||
export function _debug(message: string) {
|
||||
core.debug(message);
|
||||
function isGhes(): boolean {
|
||||
const ghUrl = new URL(
|
||||
process.env['GITHUB_SERVER_URL'] || 'https://github.com'
|
||||
);
|
||||
return ghUrl.hostname.toUpperCase() !== 'GITHUB.COM';
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue