mirror of
https://github.com/actions/setup-go
synced 2026-09-26 07:31:47 +02:00
Preserve native Go environment names in action outputs (#793)
* preserve native Go environment names in action outputs * implement review comment * Add missing trailing newline to action.yml --------- Co-authored-by: mahabaleshwars <147705296+mahabaleshwars@users.noreply.github.com>
This commit is contained in:
co-authored by
mahabaleshwars
parent
e626ada899
commit
3bfff43db6
+13
-13
@@ -427,17 +427,17 @@ jobs:
|
||||
|
||||
Once Go is on the `PATH`, the action exposes the most commonly needed `go env` variables as outputs, so workflows don't have to query them in duplicated `bash`/`pwsh` steps — one expression works on Linux, macOS, and Windows. The values are a snapshot from setup time: anything a later step changes, such as setting `GOOS`/`GOARCH` to cross-compile, is not reflected.
|
||||
|
||||
| Output | `go env` variable | Notes |
|
||||
| --- | --- | --- |
|
||||
| `go-path` | `GOPATH` | Go workspace root; `bin` and `pkg/mod` live under it |
|
||||
| `go-bin` | `GOBIN` | Go 1.27+ reports an implicit `$GOPATH/bin` default; earlier releases are empty unless `GOBIN` is set |
|
||||
| `go-bin-path` | `GOBIN` or `$GOPATH/bin` | The base Go binary directory, using the first `GOPATH` entry. Cross-compiled binaries go one level deeper, in `$GOPATH/bin/$GOOS_$GOARCH` |
|
||||
| `go-root` | `GOROOT` | Installation directory of the Go toolchain in use |
|
||||
| `go-cache` | `GOCACHE` | Build cache directory |
|
||||
| `go-mod-cache` | `GOMODCACHE` | Module cache directory |
|
||||
| `go-os` | `GOOS` | Go notation (`linux`, `darwin`, `windows`), unlike `runner.os` |
|
||||
| `go-arch` | `GOARCH` | Go notation (`amd64`, `arm64`), unlike `runner.arch` or the `x64` in the action's cache key |
|
||||
| `go-tool-dir` | `GOTOOLDIR` | Holds `compile`, `link`, `vet` and the other toolchain binaries |
|
||||
| Output | Notes |
|
||||
| --- | --- |
|
||||
| `GOPATH` | Go workspace root; `bin` and `pkg/mod` live under it |
|
||||
| `GOBIN` | Go 1.27+ reports an implicit `$GOPATH/bin` default; earlier releases are empty unless `GOBIN` is set |
|
||||
| `go-bin-path` | The base Go binary directory (`GOBIN` or `$GOPATH/bin`), using the first `GOPATH` entry. Cross-compiled binaries go one level deeper, in `$GOPATH/bin/$GOOS_$GOARCH` |
|
||||
| `GOROOT` | Installation directory of the Go toolchain in use |
|
||||
| `GOCACHE` | Build cache directory |
|
||||
| `GOMODCACHE` | Module cache directory |
|
||||
| `GOOS` | Go notation (`linux`, `darwin`, `windows`), unlike `runner.os` |
|
||||
| `GOARCH` | Go notation (`amd64`, `arm64`), unlike `runner.arch` or the `x64` in the action's cache key |
|
||||
| `GOTOOLDIR` | Holds `compile`, `link`, `vet` and the other toolchain binaries |
|
||||
|
||||
```yaml
|
||||
steps:
|
||||
@@ -445,13 +445,13 @@ steps:
|
||||
id: setup-go
|
||||
with:
|
||||
go-version: '1.25.5'
|
||||
- run: echo "Modules are cached in ${{ steps.setup-go.outputs.go-mod-cache }}"
|
||||
- run: echo "Modules are cached in ${{ steps.setup-go.outputs.GOMODCACHE }}"
|
||||
```
|
||||
|
||||
Quote `go-bin-path` in shell commands, since it may contain spaces. Variables without a dedicated output are not exposed; run `go env <NAME>` in a step when you need one.
|
||||
|
||||
> [!NOTE]
|
||||
> These outputs need Go 1.9 or newer (`go env -json`); on older releases the action logs a message, leaves them unset and does not fail. `go-cache` needs Go 1.10 and `go-mod-cache` needs Go 1.15.
|
||||
> These outputs need Go 1.9 or newer (`go env -json`); on older releases the action logs a message, leaves them unset and does not fail. `GOCACHE` needs Go 1.10 and `GOMODCACHE` needs Go 1.15.
|
||||
|
||||
## Custom download URL
|
||||
|
||||
|
||||
Reference in New Issue
Block a user