mirror of
https://code.forgejo.org/actions/setup-go
synced 2025-06-25 03:08:00 +02:00
Merge 145e58d96c
into d35c59abb0
This commit is contained in:
commit
b7cb205ee4
4 changed files with 118 additions and 9 deletions
26
dist/setup/index.js
vendored
26
dist/setup/index.js
vendored
|
@ -93640,8 +93640,14 @@ function parseGoVersionFile(versionFilePath) {
|
|||
const contents = fs_1.default.readFileSync(versionFilePath).toString();
|
||||
if (path.basename(versionFilePath) === 'go.mod' ||
|
||||
path.basename(versionFilePath) === 'go.work') {
|
||||
const match = contents.match(/^go (\d+(\.\d+)*)/m);
|
||||
return match ? match[1] : '';
|
||||
// toolchain directive: https://go.dev/ref/mod#go-mod-file-toolchain
|
||||
const matchToolchain = contents.match(/^toolchain go(\d+(\.\d+)*)/m);
|
||||
if (matchToolchain) {
|
||||
return matchToolchain[1];
|
||||
}
|
||||
// go directive: https://go.dev/ref/mod#go-mod-file-go
|
||||
const matchGo = contents.match(/^go (\d+(\.\d+)*)/m);
|
||||
return matchGo ? matchGo[1] : '';
|
||||
}
|
||||
return contents.trim();
|
||||
}
|
||||
|
@ -93744,6 +93750,7 @@ const os_1 = __importDefault(__nccwpck_require__(2037));
|
|||
function run() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
setToolchain();
|
||||
//
|
||||
// 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.
|
||||
|
@ -93860,6 +93867,21 @@ function resolveVersionInput() {
|
|||
}
|
||||
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…
Add table
Add a link
Reference in a new issue