From 9c31f591e9344f4b8d23d4ba444741e86e733941 Mon Sep 17 00:00:00 2001 From: Bryan MacFarlane Date: Thu, 26 Mar 2020 11:53:35 -0400 Subject: [PATCH] add bin to path --- .github/workflows/versions.yml | 3 ++- dist/index.js | 17 +++++++++++++++++ src/installer.ts | 16 ++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/.github/workflows/versions.yml b/.github/workflows/versions.yml index 5a2fb63..f5db42e 100644 --- a/.github/workflows/versions.yml +++ b/.github/workflows/versions.yml @@ -43,8 +43,9 @@ jobs: - name: validate version run: go version | grep "go1.12.9" - - name: show cache + - name: dump env shell: bash run: | + echo $PATH echo go versions in tool cache: echo $(ls $RUNNER_TOOL_CACHE/go) diff --git a/dist/index.js b/dist/index.js index 75de4d7..afbb4d6 100644 --- a/dist/index.js +++ b/dist/index.js @@ -4576,11 +4576,14 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const tc = __importStar(__webpack_require__(533)); +const cm = __importStar(__webpack_require__(470)); const path = __importStar(__webpack_require__(622)); const semver = __importStar(__webpack_require__(280)); const httpm = __importStar(__webpack_require__(539)); const sys = __importStar(__webpack_require__(737)); const core_1 = __webpack_require__(470); +const cp = __importStar(__webpack_require__(129)); +const fs = __importStar(__webpack_require__(747)); function downloadGo(versionSpec, stable) { return __awaiter(this, void 0, void 0, function* () { let toolPath; @@ -4602,6 +4605,7 @@ function downloadGo(versionSpec, stable) { // extracts with a root folder that matches the fileName downloaded const toolRoot = path.join(extPath, 'go'); toolPath = yield tc.cacheDir(toolRoot, 'go', makeSemver(match.version)); + addBinToPath(); } } catch (error) { @@ -4611,6 +4615,19 @@ function downloadGo(versionSpec, stable) { }); } exports.downloadGo = downloadGo; +function addBinToPath() { + return __awaiter(this, void 0, void 0, function* () { + let buf = cp.execSync('go env GOPATH'); + if (buf) { + let d = buf.toString().trim(); + let bp = path.join(d, 'bin'); + if (fs.existsSync(bp)) { + cm.addPath(bp); + } + } + }); +} +exports.addBinToPath = addBinToPath; function findMatch(versionSpec, stable) { return __awaiter(this, void 0, void 0, function* () { let archFilter = sys.getArch(); diff --git a/src/installer.ts b/src/installer.ts index eb54706..69c1e1f 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -1,9 +1,12 @@ import * as tc from '@actions/tool-cache'; +import * as cm from '@actions/core'; import * as path from 'path'; import * as semver from 'semver'; import * as httpm from '@actions/http-client'; import * as sys from './system'; import {debug} from '@actions/core'; +import * as cp from 'child_process'; +import * as fs from 'fs'; export async function downloadGo( versionSpec: string, @@ -34,6 +37,8 @@ export async function downloadGo( // extracts with a root folder that matches the fileName downloaded const toolRoot = path.join(extPath, 'go'); toolPath = await tc.cacheDir(toolRoot, 'go', makeSemver(match.version)); + + addBinToPath(); } } catch (error) { throw new Error(`Failed to download version ${versionSpec}: ${error}`); @@ -55,6 +60,17 @@ export interface IGoVersion { files: IGoVersionFile[]; } +export async function addBinToPath() { + let buf = cp.execSync('go env GOPATH'); + if (buf) { + let d = buf.toString().trim(); + let bp = path.join(d, 'bin'); + if (fs.existsSync(bp)) { + cm.addPath(bp); + } + } +} + export async function findMatch( versionSpec: string, stable: boolean