mirror of
https://gitea.com/actions/setup-go.git
synced 2026-10-07 07:13:10 +01:00
Reuse downloaded modules across Go versions, runner architectures, and runner images on the same OS instead of duplicating them in each build cache archive. Restore and save each entry independently, running operations in parallel when safe. Serialize restores for overlapping or aliased paths, preserve the original paths for the post step, and report cache-hit only when both entries match their primary keys. Update the documented manual restore keys and generated action bundles.
52 lines
2.8 KiB
YAML
52 lines
2.8 KiB
YAML
name: 'Setup Go environment'
|
|
description: 'Setup a Go environment and add it to the PATH'
|
|
author: 'GitHub'
|
|
inputs:
|
|
go-version:
|
|
description: 'The Go version to download (if necessary) and use. Supports semver spec and ranges. Be sure to enclose this option in single quotation marks.'
|
|
go-version-file:
|
|
description: 'Path to the go.mod, go.work, .go-version, or .tool-versions file.'
|
|
check-latest:
|
|
description: 'Set this option to true if you want the action to always check for the latest available version that satisfies the version spec'
|
|
default: false
|
|
token:
|
|
description: Used to pull Go distributions from go-versions. Since there's a default, this is typically not supplied by the user. When running this action on github.com, the default value is sufficient. When running on GHES, you can pass a personal access token for github.com if you are experiencing rate limiting.
|
|
default: ${{ github.server_url == 'https://github.com' && github.token || '' }}
|
|
cache:
|
|
description: Used to specify whether caching is needed. Set to true, if you'd like to enable caching.
|
|
default: true
|
|
cache-dependency-path:
|
|
description: 'Used to specify the path to a dependency file (e.g., go.mod, go.sum)'
|
|
architecture:
|
|
description: 'Target architecture for Go to use. Examples: x86, x64. Will use system architecture by default.'
|
|
go-download-base-url:
|
|
description: 'Custom base URL for downloading Go distributions. Use this to download Go from a mirror or custom source. Defaults to "https://go.dev/dl". Can also be set via the GO_DOWNLOAD_BASE_URL environment variable. The input takes precedence over the environment variable.'
|
|
outputs:
|
|
go-version:
|
|
description: 'The installed Go version. Useful when given a version range as input.'
|
|
cache-hit:
|
|
description: 'A boolean value indicating whether both module and build cache entries were restored on their primary keys'
|
|
GOPATH:
|
|
description: 'The value of `go env GOPATH`.'
|
|
GOBIN:
|
|
description: 'The value of `go env GOBIN`.'
|
|
go-bin-path:
|
|
description: 'The base Go binary directory: `GOBIN`, otherwise `bin` under the first `GOPATH` entry.'
|
|
GOROOT:
|
|
description: 'The value of `go env GOROOT`.'
|
|
GOCACHE:
|
|
description: 'The value of `go env GOCACHE`, the build cache directory.'
|
|
GOMODCACHE:
|
|
description: 'The value of `go env GOMODCACHE`, the module cache directory.'
|
|
GOOS:
|
|
description: 'The value of `go env GOOS`, the target OS in Go notation (linux, darwin, windows).'
|
|
GOARCH:
|
|
description: 'The value of `go env GOARCH`, the target architecture in Go notation (amd64, arm64).'
|
|
GOTOOLDIR:
|
|
description: 'The value of `go env GOTOOLDIR`, the directory holding the toolchain binaries.'
|
|
runs:
|
|
using: 'node24'
|
|
main: 'dist/setup/index.js'
|
|
post: 'dist/cache-save/index.js'
|
|
post-if: success()
|