/setup-go

Set up your GitHub Actions workflow with a specific version of Go

Primary LanguageTypeScriptMIT LicenseMIT

setup-go

GitHub Actions status

versions status

This action sets up a go environment for use in actions by:

  • optionally downloading and caching a version of Go by version and adding to PATH
  • registering problem matchers for error output

V2

The V2 offers:

  • Adds GOBIN to the PATH
  • Proxy Support
  • stable input
  • Bug Fixes (including issues around version matching and semver)

It will first check the local cache for a version match. If version is not found locally, It will pull it from main branch of go-versions repository and on miss or failure, it will fall back to the previous behavior of download directly from go dist.

Matching by semver spec:

steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
  with:
    go-version: '^1.13.1' # The Go version to download (if necessary) and use.
- run: go version

Matching an unstable pre-release:

steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
  with:
    stable: 'false'
    go-version: '1.14.0-rc1' # The Go version to download (if necessary) and use.
- run: go version

Usage

See action.yml

Basic:

steps:
- uses: actions/checkout@master
- uses: actions/setup-go@v1
  with:
    go-version: '1.9.3' # The Go version to download (if necessary) and use.
- run: go run hello.go

Matrix Testing:

jobs:
  build:
    runs-on: ubuntu-16.04
    strategy:
      matrix:
        go: [ '1.14', '1.13' ]
    name: Go ${{ matrix.go }} sample
    steps:
      - uses: actions/checkout@v2
      - name: Setup go
        uses: actions/setup-go@v1
        with:
          go-version: ${{ matrix.go }}
      - run: go run hello.go

License

The scripts and documentation in this project are released under the MIT License

Contributions

Contributions are welcome! See Contributor's Guide

Code of Conduct

👋 Be nice. See our code of conduct