mirror of https://github.com/actions/setup-go.git
Merge 7d123087d5
into 8e57b58e57
This commit is contained in:
commit
5116ffa51f
|
@ -285,7 +285,7 @@ describe('setup-go', () => {
|
||||||
expect(logSpy).toHaveBeenCalledWith(`Setup go version spec 1.13.0`);
|
expect(logSpy).toHaveBeenCalledWith(`Setup go version spec 1.13.0`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does not export any variables for Go versions >=1.9', async () => {
|
it('does not export GOROOT for Go versions >=1.9', async () => {
|
||||||
inputs['go-version'] = '1.13.0';
|
inputs['go-version'] = '1.13.0';
|
||||||
inSpy.mockImplementation(name => inputs[name]);
|
inSpy.mockImplementation(name => inputs[name]);
|
||||||
|
|
||||||
|
@ -298,7 +298,7 @@ describe('setup-go', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
await main.run();
|
await main.run();
|
||||||
expect(vars).toStrictEqual({});
|
expect(vars).not.toHaveProperty('GOROOT');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('exports GOROOT for Go versions <1.9', async () => {
|
it('exports GOROOT for Go versions <1.9', async () => {
|
||||||
|
@ -314,9 +314,7 @@ describe('setup-go', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
await main.run();
|
await main.run();
|
||||||
expect(vars).toStrictEqual({
|
expect(vars).toHaveProperty('GOROOT', toolPath);
|
||||||
GOROOT: toolPath
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('finds a version of go already in the cache', async () => {
|
it('finds a version of go already in the cache', async () => {
|
||||||
|
@ -989,4 +987,18 @@ use .
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('exports GOTOOLCHAIN and sets it in current process env', async () => {
|
||||||
|
inputs['go-version'] = '1.21.0';
|
||||||
|
inSpy.mockImplementation(name => inputs[name]);
|
||||||
|
|
||||||
|
const vars: {[key: string]: string} = {};
|
||||||
|
exportVarSpy.mockImplementation((name: string, val: string) => {
|
||||||
|
vars[name] = val;
|
||||||
|
});
|
||||||
|
|
||||||
|
await main.run();
|
||||||
|
expect(vars).toStrictEqual({GOTOOLCHAIN: 'local'});
|
||||||
|
expect(process.env).toHaveProperty('GOTOOLCHAIN', 'local');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -93707,6 +93707,7 @@ const os_1 = __importDefault(__nccwpck_require__(2037));
|
||||||
function run() {
|
function run() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
try {
|
try {
|
||||||
|
setToolchain();
|
||||||
//
|
//
|
||||||
// versionSpec is optional. If supplied, install / use from the tool cache
|
// 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.
|
// If not supplied then problem matchers will still be setup. Useful for self-hosted.
|
||||||
|
@ -93820,6 +93821,21 @@ function resolveVersionInput() {
|
||||||
}
|
}
|
||||||
return version;
|
return version;
|
||||||
}
|
}
|
||||||
|
function setToolchain() {
|
||||||
|
// docs: https://go.dev/doc/toolchain
|
||||||
|
// "local indicates the bundled Go toolchain (the one that shipped with the go command being run)"
|
||||||
|
// this is so any 'go' command is run with the selected Go version
|
||||||
|
// and doesn't trigger a toolchain download and run commands with that
|
||||||
|
// see e.g. issue #424
|
||||||
|
// and a similar discussion: https://github.com/docker-library/golang/issues/472
|
||||||
|
const toolchain = 'local';
|
||||||
|
const toolchainVar = 'GOTOOLCHAIN';
|
||||||
|
// set the value in process env so any `go` commands run as child-process
|
||||||
|
// don't cause toolchain downloads
|
||||||
|
process.env[toolchainVar] = toolchain;
|
||||||
|
// and in the runner env so e.g. a user running `go mod tidy` won't cause it
|
||||||
|
core.exportVariable(toolchainVar, toolchain);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
18
src/main.ts
18
src/main.ts
|
@ -11,6 +11,7 @@ import os from 'os';
|
||||||
|
|
||||||
export async function run() {
|
export async function run() {
|
||||||
try {
|
try {
|
||||||
|
setToolchain();
|
||||||
//
|
//
|
||||||
// versionSpec is optional. If supplied, install / use from the tool cache
|
// 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.
|
// If not supplied then problem matchers will still be setup. Useful for self-hosted.
|
||||||
|
@ -160,3 +161,20 @@ function resolveVersionInput(): string {
|
||||||
|
|
||||||
return version;
|
return version;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setToolchain() {
|
||||||
|
// docs: https://go.dev/doc/toolchain
|
||||||
|
// "local indicates the bundled Go toolchain (the one that shipped with the go command being run)"
|
||||||
|
// this is so any 'go' command is run with the selected Go version
|
||||||
|
// and doesn't trigger a toolchain download and run commands with that
|
||||||
|
// see e.g. issue #424
|
||||||
|
// and a similar discussion: https://github.com/docker-library/golang/issues/472
|
||||||
|
const toolchain = 'local';
|
||||||
|
const toolchainVar = 'GOTOOLCHAIN';
|
||||||
|
|
||||||
|
// set the value in process env so any `go` commands run as child-process
|
||||||
|
// don't cause toolchain downloads
|
||||||
|
process.env[toolchainVar] = toolchain;
|
||||||
|
// and in the runner env so e.g. a user running `go mod tidy` won't cause it
|
||||||
|
core.exportVariable(toolchainVar, toolchain);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue