mirror of
https://github.com/actions/setup-go.git
synced 2025-06-30 13:13:43 +00:00
Add $GOBIN
- Set $GOBIN to $(go env GOPATH)/bin - Add $GOBIN to the PATH Should make the setup of tools like golangci-lint or golint work with a simple `go get`. Using $GOBIN instead of $GOPATH/bin because the goal is to have GOPATH not being directly referenced. Also, in the future, GOBIN will have a default value too, so we would not need to manually set it, just add it to the path (see discussion in golang/go#23439). Closes #14.
This commit is contained in:
parent
2096a2c66a
commit
25c870be4d
5 changed files with 106 additions and 17 deletions
13
src/gobin.ts
Normal file
13
src/gobin.ts
Normal file
|
@ -0,0 +1,13 @@
|
|||
import * as childProcess from 'child_process';
|
||||
import * as path from 'path';
|
||||
import {promisify} from 'util';
|
||||
|
||||
const exec = promisify(childProcess.exec);
|
||||
|
||||
export async function getGOBIN(installDir: string): Promise<string> {
|
||||
const goExecutable = path.join(installDir, 'bin', 'go');
|
||||
|
||||
const result = await exec(`${goExecutable} env GOPATH`);
|
||||
const gopath = result.stdout;
|
||||
return path.join(gopath, 'bin');
|
||||
}
|
|
@ -2,6 +2,7 @@ import * as core from '@actions/core';
|
|||
import * as tc from '@actions/tool-cache';
|
||||
import * as installer from './installer';
|
||||
import * as path from 'path';
|
||||
import * as gobin from './gobin';
|
||||
|
||||
export async function run() {
|
||||
try {
|
||||
|
@ -34,6 +35,10 @@ export async function run() {
|
|||
core.exportVariable('GOROOT', installDir);
|
||||
core.addPath(path.join(installDir, 'bin'));
|
||||
console.log('Added go to the path');
|
||||
|
||||
const gobinDir = await gobin.getGOBIN(installDir);
|
||||
core.exportVariable('GOBIN', gobinDir);
|
||||
core.addPath(gobinDir);
|
||||
} else {
|
||||
throw new Error(
|
||||
`Could not find a version that satisfied version spec: ${versionSpec}`
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue