Coder Social home page Coder Social logo

setup-go's Introduction

setup-go

Basic validation Validate 'setup-go'

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.

V5

The V5 edition of the action offers:

  • Upgraded Node.js runtime from node16 to node20

See full release notes on the releases page.

V4

The V4 edition of the action offers:

  • Enabled caching by default

The action will try to enable caching unless the cache input is explicitly set to false.

Please see "Caching dependency files and build outputs" for more information.

V3

The V3 edition of the action offers:

  • Adds GOBIN to the PATH
  • Proxy support
  • Check latest version
  • Caching packages dependencies
  • stable and oldstable aliases
  • Bug Fixes (including issues around version matching and semver)

The action will first check the local cache for a version match. If a version is not found locally, it will pull it from the main branch of the go-versions repository. On miss or failure, it will fall back to downloading directly from go dist. To change the default behavior, please use the check-latest input.

Note: The setup-go action uses executable binaries which are built by Golang side. The action does not build golang from source code.

Matching by semver spec:

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

Note: Due to the peculiarities of YAML parsing, it is recommended to wrap the version in single quotation marks:

  go-version: '1.20'

The recommendation is based on the YAML parser's behavior, which interprets non-wrapped values as numbers and, in the case of version 1.20, trims it down to 1.2, which may not be very obvious.

Matching an unstable pre-release:

steps:
  - uses: actions/checkout@v4
  - uses: actions/setup-go@v5
    with:
      go-version: '1.18.0-rc.1' # The Go version to download (if necessary) and use.
  - run: go version
steps:
  - uses: actions/checkout@v4
  - uses: actions/setup-go@v5
    with:
      go-version: '1.16.0-beta.1' # The Go version to download (if necessary) and use.
  - run: go version

Usage

See action.yml

Basic

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

Check latest version

The check-latest flag defaults to false. Use the default or set check-latest to false if you prefer stability and if you want to ensure a specific Go version is always used.

If check-latest is set to true, the action first checks if the cached version is the latest one. If the locally cached version is not the most up-to-date, a Go version will then be downloaded. Set check-latest to true if you want the most up-to-date Go version to always be used.

Setting check-latest to true has performance implications as downloading Go versions is slower than using cached versions.

steps:
  - uses: actions/checkout@v4
  - uses: actions/setup-go@v5
    with:
      go-version: '1.14'
      check-latest: true
  - run: go run hello.go

Using stable/oldstable aliases

If stable is provided, action will get the latest stable version from the go-versions repository manifest.

If oldstable is provided, when current release is 1.19.x, action will resolve version as 1.18.x, where x is the latest patch release.

Note: using these aliases will result in same version as using corresponding minor release with check-latest input set to true

steps:
  - uses: actions/checkout@v4
  - uses: actions/setup-go@v5
    with:
      go-version: 'stable'
  - run: go run hello.go
steps:
  - uses: actions/checkout@v4
  - uses: actions/setup-go@v5
    with:
      go-version: 'oldstable'
  - run: go run hello.go

Caching dependency files and build outputs:

The action has a built-in functionality for caching and restoring go modules and build outputs. It uses toolkit/cache under the hood but requires less configuration settings. The cache input is optional, and caching is turned on by default.

The action defaults to search for the dependency file - go.sum in the repository root, and uses its hash as a part of the cache key. Use cache-dependency-path input for cases when multiple dependency files are used, or they are located in different subdirectories. The input supports glob patterns.

If some problem that prevents success caching happens then the action issues the warning in the log and continues the execution of the pipeline.

Caching in monorepos

steps:
  - uses: actions/checkout@v4
  - uses: actions/setup-go@v5
    with:
      go-version: '1.17'
      check-latest: true
      cache-dependency-path: |
             subdir/go.sum
             tools/go.sum
    # cache-dependency-path: "**/*.sum"

  - run: go run hello.go

Getting go version from the go.mod file

The go-version-file input accepts a path to a go.mod file or a go.work file that contains the version of Go to be used by a project.

The go directive in go.mod can specify a patch version or omit it altogether (e.g., go 1.22.0 or go 1.22).
If a patch version is specified, that specific patch version will be used.
If no patch version is specified, it will search for the latest available patch version in the cache, versions-manifest.json, and the official Go language website, in that order.

If both the go-version and the go-version-file inputs are provided then the go-version input is used.

The action will search for the go.mod file relative to the repository root

steps:
  - uses: actions/checkout@v4
  - uses: actions/setup-go@v5
    with:
      go-version-file: 'path/to/go.mod'
  - run: go version

Matrix testing

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

Supported version syntax

The go-version input supports the following syntax:

  • Specific versions: 1.15, 1.16.1, 1.17.0-rc.2, 1.16.0-beta.1
  • SemVer's version range syntax: ^1.13.1, >=1.18.0-rc.1

For more information about semantic versioning, please refer to semver documentation.

Using setup-go on GHES

setup-go comes pre-installed on the appliance with GHES if Actions is enabled. When dynamically downloading Go distributions, setup-go downloads distributions from actions/go-versions on github.com (outside of the appliance). These calls to actions/go-versions are made via unauthenticated requests, which are limited to 60 requests per hour per IP. If more requests are made within the time frame, then you will start to see rate-limit errors during downloading that looks like: ##[error]API rate limit exceeded for.... After that error the action will try to download versions directly from https://storage.googleapis.com/golang, but it also can have rate limit so it's better to put token.

To get a higher rate limit, you can generate a personal access token on github.com and pass it as the token input for the action:

uses: actions/setup-go@v5
with:
  token: ${{ secrets.GH_DOTCOM_TOKEN }}
  go-version: '1.18'

If the runner is not able to access github.com, any Go versions requested during a workflow run must come from the runner's tool cache. See "Setting up the tool cache on self-hosted runners without internet access" for more information.

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

setup-go's People

Contributors

178inaba avatar artemgavrilov avatar brcrista avatar bryanmacfarlane avatar chenrui333 avatar dependabot[bot] avatar dmitry-shibanov avatar dsame avatar dusan-trickovic avatar e-korolevskii avatar frassle avatar galargh avatar github-actions[bot] avatar hross avatar ivanzosimov avatar jongwooo avatar joshmgross avatar koba1t avatar magnetikonline avatar maksimzhukov avatar marko-zivic-93 avatar mmlb avatar n33pm avatar n3xem avatar nikolai-laevskii avatar panticmilos avatar sergey-murtazin avatar stephenmichaelf avatar subosito avatar thboop avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

setup-go's Issues

Use latest go version

The default Go version this action uses is quite outdated. Having to set the version manually is rather tedious. Is there a way to just use the latest stable version? Also, if I set it to go-version: "1.12", I would expect it to use the latest 1.12.x (currently 1.12.8) but instead it uses 1.12.0.

go get ./...: exit status 1

When I try to run go get ./..., it fails with exit status 1. I am not able to figure out what could be the reason.

Workflow config: https://github.com/matryer/moq/blob/github-actions/.github/workflows/test.yml

Failed build: https://github.com/matryer/moq/runs/923049639?check_suite_focus=true

Logs:

##[group]Run go get -v -u -t -d ./...
go get -v -u -t -d ./...
shell: /bin/bash -e {0}
env:
  GOPATH: /home/runner/work/moq/moq
  GO111MODULE: off
  GOROOT: /opt/hostedtoolcache/go/1.14.4/x64
##[endgroup]
github.com/matryer/moq (download)
# cd /home/runner/work/moq/moq/src/github.com/matryer/moq; git pull --ff-only
From https://github.com/matryer/moq
 * [new branch]      github-actions  -> origin/github-actions
 * [new branch]      import-aliases  -> origin/import-aliases
 * [new branch]      master          -> origin/master
 * [new branch]      no-global-mutex -> origin/no-global-mutex
 * [new branch]      variadic-args-5 -> origin/variadic-args-5
You are not currently on a branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

package github.com/matryer/moq: exit status 1
get "golang.org/x/tools/go/packages": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools/go/packages?go-get=1
get "golang.org/x/tools/go/packages": verifying non-authoritative meta tag
golang.org/x/tools (download)
get "golang.org/x/tools/go/gcexportdata": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools/go/gcexportdata?go-get=1
get "golang.org/x/tools/go/gcexportdata": verifying non-authoritative meta tag
get "golang.org/x/tools/go/internal/gcimporter": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools/go/internal/gcimporter?go-get=1
get "golang.org/x/tools/go/internal/gcimporter": verifying non-authoritative meta tag
get "golang.org/x/tools/go/internal/packagesdriver": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools/go/internal/packagesdriver?go-get=1
get "golang.org/x/tools/go/internal/packagesdriver": verifying non-authoritative meta tag
get "golang.org/x/tools/internal/gocommand": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools/internal/gocommand?go-get=1
get "golang.org/x/tools/internal/gocommand": verifying non-authoritative meta tag
get "golang.org/x/mod/semver": found meta tag get.metaImport{Prefix:"golang.org/x/mod", VCS:"git", RepoRoot:"https://go.googlesource.com/mod"} at //golang.org/x/mod/semver?go-get=1
get "golang.org/x/mod/semver": verifying non-authoritative meta tag
golang.org/x/mod (download)
get "golang.org/x/tools/internal/event": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools/internal/event?go-get=1
get "golang.org/x/tools/internal/event": verifying non-authoritative meta tag
get "golang.org/x/tools/internal/event/core": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools/internal/event/core?go-get=1
get "golang.org/x/tools/internal/event/core": verifying non-authoritative meta tag
get "golang.org/x/tools/internal/event/keys": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools/internal/event/keys?go-get=1
get "golang.org/x/tools/internal/event/keys": verifying non-authoritative meta tag
get "golang.org/x/tools/internal/event/label": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools/internal/event/label?go-get=1
get "golang.org/x/tools/internal/event/label": verifying non-authoritative meta tag
get "golang.org/x/tools/internal/packagesinternal": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools/internal/packagesinternal?go-get=1
get "golang.org/x/tools/internal/packagesinternal": verifying non-authoritative meta tag
get "golang.org/x/tools/internal/typesinternal": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools/internal/typesinternal?go-get=1
get "golang.org/x/tools/internal/typesinternal": verifying non-authoritative meta tag
get "golang.org/x/xerrors": found meta tag get.metaImport{Prefix:"golang.org/x/xerrors", VCS:"git", RepoRoot:"https://go.googlesource.com/xerrors"} at //golang.org/x/xerrors?go-get=1
golang.org/x/xerrors (download)
get "golang.org/x/xerrors/internal": found meta tag get.metaImport{Prefix:"golang.org/x/xerrors", VCS:"git", RepoRoot:"https://go.googlesource.com/xerrors"} at //golang.org/x/xerrors/internal?go-get=1
get "golang.org/x/xerrors/internal": verifying non-authoritative meta tag
get "golang.org/x/tools/imports": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools/imports?go-get=1
get "golang.org/x/tools/imports": verifying non-authoritative meta tag
get "golang.org/x/tools/internal/imports": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools/internal/imports?go-get=1
get "golang.org/x/tools/internal/imports": verifying non-authoritative meta tag
get "golang.org/x/mod/module": found meta tag get.metaImport{Prefix:"golang.org/x/mod", VCS:"git", RepoRoot:"https://go.googlesource.com/mod"} at //golang.org/x/mod/module?go-get=1
get "golang.org/x/mod/module": verifying non-authoritative meta tag
get "golang.org/x/tools/go/ast/astutil": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools/go/ast/astutil?go-get=1
get "golang.org/x/tools/go/ast/astutil": verifying non-authoritative meta tag
get "golang.org/x/tools/internal/gopathwalk": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools/internal/gopathwalk?go-get=1
get "golang.org/x/tools/internal/gopathwalk": verifying non-authoritative meta tag
get "golang.org/x/tools/internal/fastwalk": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools/internal/fastwalk?go-get=1
get "golang.org/x/tools/internal/fastwalk": verifying non-authoritative meta tag
github.com/pmezard/go-difflib (download)
##[error]Process completed with exit code 1.

How to use Go 1.16 beta?

I have a Go 1.16 project that I'd like to test, but as far as I can see, the beta is neither available on go-versions nor on go dist.

This would be really helpful for the Go ecosystem, as beta (and RC) versions need to be actually used if we are supposed to actually find and report bugs before the official release.

Optimize by allowing latest versions installed to be used

Currently, using setup-go can take roughly 10 seconds.

Having setup-go update a symlink to point to a preinstalled Go should take less than 1 second. The current way of installing Go can continue to be used for versions not preinstalled.

The ubuntu-latest image lists Go 1.11, 1.12, 1.13, 1.14 in their release notes.

Tighten up Go version specification

The problem

I just tried to specify a build matrix that includes the latest beta, go1.15beta1 (using stable: 'false'). This failed because go1.15beta1 is not a valid version - 1.15.0-beta1 is the valid version according to setup-go (note the lack of go prefix, and the addition of .0-).

Background

Go versions are not semver: golang/go#27255 (comment)

(I note the discussion in golang/go#32450, but caution there is no specific plan)

For example, here is a list of valid Go versions (i.e. the result of go version):

  • go1.14
  • go1.14.1
  • go1.15beta1

The issue is that currently the user of setup-go has to perform two steps of translation: drop the go prefix, and think about how to translate to the "semver equivalent".

Proposal (breaking change)

I'd like to propose that specifying Go versions in the default case, i.e. an exact version specification, follows the output of go version. Hence:

- uses: actions/setup-go@v2
  with:
    go-version: 'go1.14'

means "use go1.14" rather than "use the latest go1.14.x".

If the semver-like specification is required, then I propose that a special prefix is used, perhaps ~:

- uses: actions/setup-go@v2
  with:
    go-version: '~^v1.14.0' 

To my understanding this is a breaking change (hence v3 candidate) but I wanted to raise the issue for discussion in any case.

Install on Windows is very slow

Installing Go on Windows seems to take 1.5-2.5 minutes. This is a substantial cost to all but the heaviest testing.

In the run below, 69% of the total time went to installing Go.

Screen Shot 2020-05-29 at 11 51 28 AM

Matchers: Error annotations catch things that are not errors and not even in Go code

Consider the (totally valid) makefile:

all: foo
	echo Done

include Foo.mk

Foo.mk:
        printf 'foo:\n\techo foo\n' > $@

On the first run of make, this generates

Makefile:4: Foo.mk: No such file or directory
printf 'foo:\n\techo foo\n' > Foo.mk
echo foo
foo
echo Done
Done

There isn't really a good way to suppress this warning (see this StackOverflow question I asked) without massively complicating the Makefile. I don't mind seeing this warning on the first make. However, my github actions go job decides that this is an error (it's not; it's non-fatal), and annotates every single pull request on my repository with an error on the relevant line on the Makefile. Please fix the annotation to not do this.

Setting GO environment variables (GOPATH, GOBIN)

Ref:

setup-go/src/installer.ts

Lines 105 to 115 in 8187235

const goPath: string = process.env['GOPATH'] || '';
const goBin: string = process.env['GOBIN'] || '';
// set GOPATH and GOBIN as user value
if (goPath) {
core.exportVariable('GOPATH', goPath);
}
if (goBin) {
core.exportVariable('GOBIN', goBin);
}
}

2019-08-15T22:05:36.9141345Z env:
2019-08-15T22:05:36.9141441Z   GOROOT: /opt/hostedtoolcache/go/1.12.0/x64
2019-08-15T22:05:36.9141482Z ##[endgroup]
2019-08-15T22:05:37.0161150Z LEIN_HOME=/usr/local/lib/lein
2019-08-15T22:05:37.0161985Z M2_HOME=/usr/share/apache-maven-3.6.1
2019-08-15T22:05:37.0162146Z BOOST_ROOT=/usr/local/share/boost/1.69.0
2019-08-15T22:05:37.0162236Z GOROOT_1_11_X64=/usr/local/go1.11
2019-08-15T22:05:37.0162330Z ANDROID_HOME=/usr/local/lib/android/sdk
2019-08-15T22:05:37.0162641Z JAVA_HOME_11_X64=/usr/lib/jvm/zulu-11-azure-amd64
2019-08-15T22:05:37.0162818Z LANG=C.UTF-8
2019-08-15T22:05:37.0162931Z INVOCATION_ID=e226194a393e43d59aba6bd4c85af030
2019-08-15T22:05:37.0163149Z JAVA_HOME_12_X64=/usr/lib/jvm/zulu-12-azure-amd64
2019-08-15T22:05:37.0163325Z ANDROID_SDK_ROOT=/usr/local/lib/android/sdk
2019-08-15T22:05:37.0163420Z RUNNER_TOOL_CACHE=/opt/hostedtoolcache
2019-08-15T22:05:37.0163674Z JAVA_HOME=/usr/lib/jvm/zulu-8-azure-amd64
2019-08-15T22:05:37.0163967Z RUNNER_TRACKING_ID=github_28b0e254-504e-46ce-b1ab-b1db282d32b4
2019-08-15T22:05:37.0164043Z GITHUB_ACTIONS=true
2019-08-15T22:05:37.0164178Z DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
2019-08-15T22:05:37.0164238Z USER=runner
2019-08-15T22:05:37.0164303Z GITHUB_HEAD_REF=
2019-08-15T22:05:37.0164521Z GITHUB_ACTOR=radu-matei
2019-08-15T22:05:37.0164594Z GITHUB_ACTION=run
2019-08-15T22:05:37.0164676Z GRADLE_HOME=/usr/share/gradle
2019-08-15T22:05:37.0164763Z PWD=/home/runner/work/signy/signy
2019-08-15T22:05:37.0164871Z HOME=/home/runner
2019-08-15T22:05:37.0164966Z GOROOT=/opt/hostedtoolcache/go/1.12.0/x64
2019-08-15T22:05:37.0165060Z JOURNAL_STREAM=9:26649
2019-08-15T22:05:37.0165324Z JAVA_HOME_8_X64=/usr/lib/jvm/zulu-8-azure-amd64
2019-08-15T22:05:37.0165421Z RUNNER_TEMP=/home/runner/work/_temp
2019-08-15T22:05:37.0165510Z CONDA=/usr/share/miniconda
2019-08-15T22:05:37.0165615Z BOOST_ROOT_1_69_0=/usr/local/share/boost/1.69.0
2019-08-15T22:05:37.0165753Z RUNNER_WORKSPACE=/home/runner/work/signy
2019-08-15T22:05:37.0166170Z GITHUB_REF=refs/heads/gh-actions
2019-08-15T22:05:37.0166286Z GITHUB_SHA=419522609132ac1c17aed7d67e84e855de049c5e
2019-08-15T22:05:37.0166418Z GOROOT_1_12_X64=/usr/local/go1.12
2019-08-15T22:05:37.0166504Z DEPLOYMENT_BASEPATH=/opt/runner
2019-08-15T22:05:37.0166638Z GITHUB_EVENT_PATH=/home/runner/work/_temp/_github_workflow/event.json
2019-08-15T22:05:37.0166705Z RUNNER_OS=Linux
2019-08-15T22:05:37.0166811Z GITHUB_BASE_REF=
2019-08-15T22:05:37.0167013Z VCPKG_INSTALLATION_ROOT=/usr/local/share/vcpkg
2019-08-15T22:05:37.0167113Z PERFLOG_LOCATION_SETTING=RUNNER_PERFLOG
2019-08-15T22:05:37.0167581Z JAVA_HOME_7_X64=/usr/lib/jvm/zulu-7-azure-amd64
2019-08-15T22:05:37.0167657Z RUNNER_USER=runner
2019-08-15T22:05:37.0167712Z SHLVL=1
2019-08-15T22:05:37.0167844Z GITHUB_REPOSITORY=engineerd/signy
2019-08-15T22:05:37.0167932Z GITHUB_EVENT_NAME=push
2019-08-15T22:05:37.0168211Z LEIN_JAR=/usr/local/lib/lein/self-installs/leiningen-2.9.1-standalone.jar
2019-08-15T22:05:37.0168321Z RUNNER_PERFLOG=/home/runner/perflog
2019-08-15T22:05:37.0168438Z GITHUB_WORKFLOW=Go
2019-08-15T22:05:37.0168514Z ANT_HOME=/usr/share/ant
2019-08-15T22:05:37.0168631Z PATH=/opt/hostedtoolcache/go/1.12.0/x64/bin:/usr/share/rust/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
2019-08-15T22:05:37.0168788Z GITHUB_WORKSPACE=/home/runner/work/signy/signy
2019-08-15T22:05:37.0168994Z CHROME_BIN=/usr/bin/google-chrome

Causing "##[error]No such file or directory" for later "run" steps

Hi, the issue was originally reported to GitHub Developer Support and was recommended opening an issue inside "setup-go". Though from the checks output I cannot see how it's related to setup-go.

Original report

Hi, I just tried GitHub Action for a repo of mine. It seems I hit a bug.

When I specify more than 2 "run" steps for a job, only the 1st can run, the 2nd and later ones all fail right away with "##[error]No such file or directory", no other trace were printed even with "set -o xtrace"

You can find the scene at https://github.com/yousong/pkg/pull/1/checks . The later "run" steps were configured with "continue-on-error" just to check if it will fail for the 3rd run.

Thank you.

The reply

Thanks for getting in touch! This looks like it may be an issue with the setup-go action itself. I'd recommend opening an issue inside this repository for more help with this.

https://github.com/actions/setup-go

API rate limit exceeded

I'm getting this error fairly consistently when using the action:

Run actions/[email protected]
  with:
    go-version: 1.10
##[error]API rate limit exceeded for 199.7.166.17. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)
##[error]Node run failed with exit code 1

Does not seem to work with RC golang releases

I've tried to use it with 1.15-rc1, 1.15rc1 and 1.15.0-rc1 but every time I get:

Setup go  version spec 1.15rc1
Attempting to download 1.15rc1...
matching 1.15rc1...
Not found in manifest.  Falling back to download directly from Go
##[error]Unable to find Go version '1.15rc1' for platform linux and architecture x64.

Use the latest release

#11 gave us the ability to use the latest version for a specific release, in other other words - to care about major and minor, but not a patch version.

Is it possible to specify the latest minor as well? Just a 1.x which will take the latest Go release, today it will be 1.13.4, but after the release of 1.14 (somewhere in February) 1.x become 1.14.x.

Basically, the same as Travis does. Thank you.

Cannot run action as `set-env` and `add-path` were disabled.

Github has disabled the set-env and add-path commands on 16/11/20.

Since the action is still using core.addPath() , at least for setting the GOPATH and GOBIN from what I understand from the code, it cannot work when run as a github action.

Here are the logs we get when running it:

Run actions/setup-go@v2-beta
  with:
    go-version: 1.14.6
    stable: true
Setup go stable version spec 1.14.6
A version satisfying 1.14.6 not found locally, attempting to download ...
Downloading from https://storage.googleapis.com/golang/go1.14.6.linux-amd64.tar.gz
Extracting ...
/bin/tar xz --warning=no-unknown-keyword -C /home/runner/work/_temp/7c6de7a4-b716-4dfa-8eb9-5259f4089ca7 -f /home/runner/work/_temp/b3b2ec86-f773-4093-b274-3ea83198abea
Installed
Error: Unable to process command '::set-env name=GOROOT::/opt/hostedtoolcache/go/1.14.6/x64' successfully.
Error: The `set-env` command is disabled. Please upgrade to using Environment Files or opt into unsecure command execution by setting the `ACTIONS_ALLOW_UNSECURE_COMMANDS` environment variable to `true`. For more information see: https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/
Error: Unable to process command '::add-path::/opt/hostedtoolcache/go/1.14.6/x64/bin' successfully.
Error: The `add-path` command is disabled. Please upgrade to using Environment Files or opt into unsecure command execution by setting the `ACTIONS_ALLOW_UNSECURE_COMMANDS` environment variable to `true`. For more information see: https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/
Added go to the path
Error: Unable to process command '::add-path::/home/runner/go/bin' successfully.
Error: The `add-path` command is disabled. Please upgrade to using Environment Files or opt into unsecure command execution by setting the `ACTIONS_ALLOW_UNSECURE_COMMANDS` environment variable to `true`. For more information see: https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/
go version go1.14.6 linux/amd64

#1

Thank you 🙇‍♀ for wanting to create an issue in this repository. Before you do, please ensure you are filing the issue in the right place. Issues should only be opened on if the issue relates to code in this repository.

If your issue is relevant to this repository, please delete this text and continue to create this issue. Thank you in advance.

Go tip support

Like #92 I have found that I couldn't add Go 1.16 beta, and Go tip.

Testing on Go tip is quite important to a number of core projects. I was wondering if that could be done?

[error]The process '/bin/tar' failed with exit code 2

Problem description

Sometimes I got errors at my build showing

The process '/bin/tar' failed with exit code 2

as shown in next picture:
image

When using setup-go V1 I had today such problems with
https://github.com/Daimler/sechub/runs/564346427?check_suite_focus=true
But doing a retry it worked (same commit ID):
https://github.com/Daimler/sechub/runs/564357022?check_suite_focus=true

Problem seems to be already fixed for setup-node

At actions/setup-node#116 the same problem was found for setup-node action. There was a bugfix done and issue closed - so was this only fixed for setup-node? IMHO there should be another fix for go, or former bugfix did not work. Or the fix did not effect setup-go V1?

Broken version normalization

PR #13 broke the way version normalization works. Since it’s merged, now 1.10 resolves to 1.10.8 or whatever the latest version is instead of 1.10.0. This is not the behavior Go user expects.

externally configured Go version for automation support

I've got a GitHub Action I wrote to update the Go versions in my various configuration files[1]. Especially, for my security projects, I'd like an auditable but automated way to keep the Go versions I use up to date.

(Using a .x version number isn't enough because doing that wouldn't kick off new builds when a new version is released and it's difficult to audit when a new Go version was brought in.)

But, unfortunately (and totally understandably from a security perspective!), GitHub Actions can't modify integration configs. So, I've got a plan to keep my Go versions in a file outside of my workflow configs, have my workflows read in that file and use it for go_version, and then have my tool update that external file.

Would y'all be open to me posting a PR to make that an explicitly supported thing in setup-go? Say, reading a file in something like .github/versions/go.yml or similar?

[1] https://github.com/jmhodges/ensure-latest-go

Version in tool cache is often behind go-versions manifest's latest

Goal: Set minimum required Go version but pick the latest available

For the use case of specifying a lower bound Go version for a project but defaulting to the latest release I'm using this action config fragment:

      - uses: actions/setup-go@v2
        with:
          go-version: '>=1.5 <2'

Down the rabbit hole 🐇

Check tool-cache

setup-go first checks if a matching version Go is in the tool cache. https://github.com/actions/setup-go/blob/main/src/installer.ts#L41

With ACTIONS_STEP_DEBUG=true, the relevant part from a build run:

Setup go stable version spec >=1.5 <2
##[debug]isExplicit: 
##[debug]explicit? false
##[debug]isExplicit: 1.11.13
##[debug]explicit? true
##[debug]isExplicit: 1.12.17
##[debug]explicit? true
##[debug]isExplicit: 1.13.15
##[debug]explicit? true
##[debug]isExplicit: 1.14.7
##[debug]explicit? true
##[debug]isExplicit: 1.15.0
##[debug]explicit? true
##[debug]evaluating 5 versions
##[debug]matched: 1.15.0
##[debug]checking cache: /opt/hostedtoolcache/go/1.15.0/x64
##[debug]Found tool in cache go 1.15.0 x64
Found in cache @ /opt/hostedtoolcache/go/1.15.0/x64

(Although the debug looks like it's iterating from oldest version in cache, it actually isn't the behavior. These are _isExplicitVersion(...) calls from findAllVersions() in @actions/toolkit/.../tool-cache.ts
https://github.com/actions/toolkit/blob/master/packages/tool-cache/src/tool-cache.ts#L514)

GitHub local Go Versions Manifest

Only if there isn't a matching version in the cache, it proceeds to checking @actions/go-versions:versions-manifest.json. A file that seems to be periodically generated, approved by humans in a PR, and gets committed again by a bot.

If we check versions-manifest.json, it has Go 1.15.1 in it. On the other hand the cache only has—semver cleaned up—1.15.0.

Can we prime the cache?

To debug this, I tried priming the cache by hardcoding the version and seeing if installGoVersion() from installer.ts would actually put this into the cache.

It says so:

##[debug]Caching tool go 1.15.1 x64
##[debug]source dir: /home/runner/work/_temp/9b74f02e-5739-4ef8-8416-f3c2b222710b
##[debug]destination /opt/hostedtoolcache/go/1.15.1/x64
##[debug]finished caching tool

...but when I revert back to >=1.5 <2 version spec and run the action again, it continues to match 1.5.0 from the tool-cache.

Questions

How does /opt/hostedtoolcache get populated?

Seems like only PyPy, Python, Ruby, boost, go, and node are the tools in this directory.
Makes me think this is centrally curated, and not a globally shared cache.

What cache gets updated by installGoVersion()?

When it calls tc.cacheDir on the extracted Go install, what is the effective cache domain for this? Is it global, per project, per user, per run?

Is checking the cache with a version spec intentional?

If we don't have an explicit version, setup-go checks the cache with the supplied semver version spec. Is this intentional? Because of this, there's no way to provide a version spec but hope to expect to get the latest version in go-versions manifest file, or directly from Google.

Support tip?

I looked through the installer.js script and it looked to me like only tags from https://github.com/golang/go/tags are supported as valid versions to install.

I would imagine that some users would also want to test their Go programs against tip to ensure that upcoming language changes/additions don't break.

Go even provides a way to install tip via https://godoc.org/golang.org/dl/gotip (once you have a single Go version installed that is).

What do you think?

Use recommended release strategy

We should be using the release strategy specified by https://github.com/actions/toolkit/blob/master/docs/action-versioning.md#recommendations

To get there, we need to:

  1. Create a releases/v1 branch and move the v1 tag and future releases there
  2. Warn that we will deprecate the master branch and that you should attach to v1 instead. We will support master in a warned but deprecated state for ~1 month.
  3. Switch the warning to an error on master. Remove node_modules from the master branch. We will stay in this state for ~1 month.
  4. Remove the error on master.

During steps 2 and 3, we need to be extra careful to not check the warning/error into the releases branch.

the action create incorrect directory

I have created a workflow with the usage of setup-go:

    - name: Set up Go 1.x
      uses: actions/setup-go@v2
      with:
        go-version: ^1.13

    - name: Check out code into the Go module directory
      uses: actions/checkout@v2

The problem is the directory created by the workflow. It creates the directory of the repository as home/runner/work/gshark/gshark with repeate names of my project which expected to be home/runner/work/gshark. I am not sure if this is a bug or any other configuration to address this.

Thanks in advance.

Support for Outputting or Exporting Go Environment Variables

Version

actions/setup-go@v2

Description

In some of our GitHub Actions workflows, we opt to cache the GOCACHE between jobs to save compilation time. It seems like we currently need to run go env GOCACHE to fetch the correct GOCACHE path after this action is run, e.g.

jobs:
  example:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-go@v2
      with:
        go-version: "1.14"
    - name: go env
      run: |
        echo "::set-env name=GOCACHE::$(go env GOCACHE)"
    - uses: actions/cache@v2
      with:
        path: ${{ env.GOCACHE }}
        key: ${{ runner.os }}-GOCACHE-${{ hashFiles('go.sum') }}-${{ hashFiles('src/**') }}

Since this action already runs go env, it would be great if those values were either available as outputs, e.g.

jobs:
  example:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-go@v2
      id: setup_go
      with:
        go-version: "1.14"
    - uses: actions/cache@v2
      with:
        path: ${{ steps.setup_go.outputs.GOCACHE }}
        key: ${{ runner.os }}-GOCACHE-${{ hashFiles('go.sum') }}-${{ hashFiles('src/**') }}

Or if we could configure environment variables to automatically be exported:

jobs:
  example:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-go@v2
      with:
        go-version: "1.14"
        export-environment-variables: [GOCACHE]
    - uses: actions/cache@v2
      with:
        path: ${{ env.GOCACHE }}
        key: ${{ runner.os }}-GOCACHE-${{ hashFiles('go.sum') }}-${{ hashFiles('src/**') }}

Thank you for the consideration! Please reach out if I'm missing something and this is already possible or if this would be acceptable as an enhancement.

Lint: no go files to analyze

image

https://github.com/Allenxuxu/gev/commit/f2db4e59dde570e11cec55c44d4e599ffc5124c7/checks?check_suite_id=288024110

This is my workflows.yml

name: CI
on: [push,pull_request]
jobs:
  lint:
    name: Lint
    runs-on: ubuntu-18.04
    steps:
    - name: Set up Go 1.12
      uses: actions/setup-go@v1
      with:
        go-version: 1.12
      id: go
    - name: Code
      uses: actions/checkout@v1
    - name: Intsall Golangci-lint 
      run: curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh| sh -s -- -b . latest
    - name: Lint
      run: ./golangci-lint run ./... --skip-dirs benchmarks
      
  test:
    needs: Lint
    name: Unit Testing
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [macOS-10.14,ubuntu-18.04]
    steps:
    - name: Set up Go 1.12
      uses: actions/setup-go@v1
      with:
        go-version: 1.12
      id: go
    - name: Code
      uses: actions/checkout@v1
    - name: Go Get dependencies
      run: go get -v -t -d ./...
    - name: Go Test
      run: go test -v ./...

Regex matching go-version pulls wrong version

The README gives the example of using:

go-version: '^1.13.1'

It appears there is a problem when using the ^ in the go-version specifier. When using the exact text from the example, actual job runs end up pulling in an earlier version of go:

Run actions/setup-go@v2
Setup go stable version spec ^1.13.1
Found in cache @ /opt/hostedtoolcache/go/1.15.6/x64
Added go to the path
Successfully setup go version ^1.13.1
go version go1.15.6 linux/amd64

Note the output of ^1.13.1, but the cache hit of /opt/hostedtoolcache/go/1.15.6/x64.

Once the ^ is removed from the version specifier, the job correctly recognizes the right go version to use:

Run actions/setup-go@v2
Setup go stable version spec 1.13.1
Attempting to download 1.13.1...
matching 1.13.1...
Acquiring 1.13.1 from https://github.com/actions/go-versions/releases/download/1.13.1-20200616.23/go-1.13.1-linux-x64.tar.gz
Extracting Go...
/bin/tar xz --warning=no-unknown-keyword -C /home/runner/work/_temp/c5f24668-fc8b-4cac-9a77-3f5093db058c -f /home/runner/work/_temp/61cc926c-8f03-456f-a905-aea738a8b447
Successfully extracted go to /home/runner/work/_temp/c5f24668-fc8b-4cac-9a77-3f5093db058c
Adding to the cache ...
Successfully cached go to /opt/hostedtoolcache/go/1.13.1/x64
Added go to the path
Successfully setup go version 1.13.1
go version go1.13.1 linux/amd64

Rename default branch

👋 This issue is to track the move over to using main as the default branch for this repo. We’d love your team's help in completing this transition.

Do not remove your old default branch, customers are going to be using it. We will be sending messages out about these changes, but if you want to message in your repository, that's fine as well.

  • Create a main branch.
  • You might need to rebase any pull requests you want to merge before changing the default branch.
  • Change the default branch in settings to main.
  • Update any documentation in this repo to refer to the new branch name, although using the version tag is still preferred.
  • Check that this Action works correctly for users who have a repository with a custom default branch name.
  • Close this issue and celebrate 🎉

We are aiming to complete this work by July 17th July 24th.

Print installed version and environment info after installing

With allowed versions like 1.13.x, and potentially latest (#31) / tip (#21) in the future, I'd like to see the action print out the version it installed after it completes. Right now, you just get:

Run actions/setup-go@v1
  with:
    go-version: 1.12.x
/bin/tar xzC /home/runner/work/_temp/a019414e-aed8-4b3a-ab61-ad7003d09d12 -f /home/runner/work/_temp/8575e7d9-8f51-4d45-b8d0-0461f5b12f08
Added matchers: 'go'. Problem matchers scan action output for known warning or error strings and report these inline.

Which says nothing about what actually got installed.

Compare this to travis_setup_go, which will give you:

$ travis_setup_go
go version go1.13.5 linux/amd64
$ export GOPATH="/home/travis/gopath"
$ export PATH="/home/travis/gopath/bin:/home/travis/.gimme/versions/go1.13.5.linux.amd64/bin:/home/travis/bin:/home/travis/bin:/home/travis/.local/bin:/usr/local/lib/jvm/openjdk11/bin:/opt/pyenv/shims:/home/travis/.phpenv/shims:/home/travis/perl5/perlbrew/bin:/home/travis/.nvm/versions/node/v8.12.0/bin:/home/travis/.rvm/gems/ruby-2.5.3/bin:/home/travis/.rvm/gems/ruby-2.5.3@global/bin:/home/travis/.rvm/rubies/ruby-2.5.3/bin:/home/travis/gopath/bin:/home/travis/.gimme/versions/go1.11.1.linux.amd64/bin:/usr/local/maven-3.6.0/bin:/usr/local/cmake-3.12.4/bin:/usr/local/clang-7.0.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/travis/.rvm/bin:/home/travis/.phpenv/bin:/opt/pyenv/bin:/home/travis/.yarn/bin"
$ export GO111MODULE="on"
$ gimme version
v1.5.3
$ go version
go version go1.13.5 linux/amd64
$ go env
< snipped >

Or for tip:

$ travis_setup_go
go version devel +7d30af8e17 Fri Dec 13 20:41:04 2019 +0000 linux/amd64
$ export GOPATH="/home/travis/gopath"
$ export PATH="/home/travis/gopath/bin:/home/travis/.gimme/versions/go/bin:/home/travis/bin:/home/travis/bin:/home/travis/.local/bin:/usr/local/lib/jvm/openjdk11/bin:/opt/pyenv/shims:/home/travis/.phpenv/shims:/home/travis/perl5/perlbrew/bin:/home/travis/.nvm/versions/node/v8.12.0/bin:/home/travis/.rvm/gems/ruby-2.5.3/bin:/home/travis/.rvm/gems/ruby-2.5.3@global/bin:/home/travis/.rvm/rubies/ruby-2.5.3/bin:/home/travis/gopath/bin:/home/travis/.gimme/versions/go1.11.1.linux.amd64/bin:/usr/local/maven-3.6.0/bin:/usr/local/cmake-3.12.4/bin:/usr/local/clang-7.0.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/travis/.rvm/bin:/home/travis/.phpenv/bin:/opt/pyenv/bin:/home/travis/.yarn/bin"
$ export GO111MODULE="on"
$ gimme version
v1.5.3
$ go version
go version devel +7d30af8e17 Fri Dec 13 20:41:04 2019 +0000 linux/amd64
$ go env
< snipped >

Which gives much more information about the Go environment that the job used.

Caret in go-version value does not work as documented

Hi!

Specifying go-version with a caret (e.g. '^1.14.3') does not work as shown in the documentation. setup-go desists to download 1.14.1 and proceeds to download the latest stable available (1.14.4) as of today.

This can be seen in the logs as:

Run actions/setup-go@v2
  with:
    go-version: ^1.14.3
    stable: true
Setup go stable version spec ^1.14.3
A version satisfying ^1.14.3 not found locally, attempting to download ...
Downloading from https://storage.googleapis.com/golang/go1.14.4.linux-amd64.tar.gz

We suggest updating the docs to drop the mention of the caret.

Hope that it helps!

Cheers,

pancho

EDIT: should have said: "desists to download 1.14.3".

Run 'go get ... ; go version' before 'go build ./...' breaks action

When building with go: [1.13] in a windows environment making use of the pwsh as shell a pipeline step fails with no helpful log message if commands go get [...] ; go version are run before the build.

For example (Logs):

    - name: test
      shell: pwsh
      run: |
        go get github.com/josephspurrier/goversioninfo/cmd/goversioninfo
        go version
        go build -v ./...
Output:
go version go1.13.6 windows/amd64
github.com/gallo-cedrone/nri-elasticsearch/vendor/github.com/newrelic/infra-integrations-sdk/data/event
##[error]Process completed with exit code 1.

And these ones succeed

    - name: MSBuild
      shell: pwsh
      run: |
        go get github.com/josephspurrier/goversioninfo/cmd/goversioninfo
        go build -v ./...
    - name: MSBuild
      shell: pwsh
      run: |
        go version
        go build -v ./...
    - name: MSBuild3
      shell: bash
      run: |
        go get github.com/josephspurrier/goversioninfo/cmd/goversioninfo
        go version
        go build -v ./...

This locally is not happening, using windows and the bash as shell is not happening, using the linux environment is not happening.

Honestly I do not understand what can cause this weird behaviour

Add $GOPATH/bin to $PATH

When installing tools via go get (e.g. golint) they can not be ran without adding $GOPATH/bin to $PATH beforehand.

So for using e.g. golint one would need to write a step:

- run: |
    export PATH=$PATH:$(go env GOPATH)/bin
    go get -u golang.org/x/lint/golint
    golint -set_exit_status ./...

It would be cool, if setup-go could already do the export PATH=$PATH:$(go env GOPATH)/bin part, as this is a common need.

Produce error instead of silently ignoring empty "go-version"

I'm not sure if it's possible for an action to distinguish between a value not being set or a value being set, but empty / nil, but opening a ticket, just in case. This could also be considered a bug in GitHub actions (more below).

I ran into a bug yesterday in one of our repositories using this action (moby/term#19). The repository had a workflow defined as below (simplified);

strategy:
  matrix:
    go-versions: [1.12.x, 1.13.x, 1.14.x]
steps:
- name: Install Go
  uses: actions/setup-go@v1
  with:
    go-version: ${{ matrix.go-version }}

CI seemed to be running fine, testing all versions:

Screenshot 2020-11-01 at 12 38 59

However, on close inspection, it turned out we were only testing against the latest go version. The reason for that was that the go-version: was empty:

97782034-7c066800-1b8f-11eb-9a57-e6498d247409

The reason was that the matrix defined go-versions (plural), but the action was looking for ${{ matrix.go-version }} (singular), which would be a simple fix;

--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -4,7 +4,7 @@ jobs:
       matrix:
-        go-versions: [1.12.x, 1.13.x, 1.14.x]
+        go-version: [1.12.x, 1.13.x, 1.14.x]
         platform: [ubuntu-latest]

These things can be easy to miss though, as the action is silently ignoring this case; would it be possible to detect this situation and make the action fail ?

setup-go should install non-git VCS binaries

My project has a transitive test dependency on a bzr repo or two. It's been a continual source of annoyance, and I haven't been able to find a workaround so that developers can just use Go out of the box without installing bzr.

After invoking setup-go, and calling a go run command, I see the following error:

  > [line 0 : column 0] - loading files from package ".": go [list -f {{context.GOARCH}} {{context.Compiler}} -- unsafe]: exit status 1: go: labix.org/v2/[email protected]: bzr branch --use-existing-dir https://launchpad.net/mgo/v2 . in /home/runner/go/pkg/mod/cache/vcs/ca61c737a32b1e09a0919e15375f9c2b6aa09860cc097f1333b3c3d29e040ea8: exec: "bzr": executable file not found in $PATH
 go: launchpad.net/[email protected]: bzr branch --use-existing-dir https://launchpad.net/~niemeyer/gocheck/trunk . in /home/runner/go/pkg/mod/cache/vcs/f46ce2ae80d31f9b0a29099baa203e3b6d269dace4e5357a2cf74bd109e13339: exec: "bzr": executable file not found in $PATH
go: error loading module requirements

Specifically, the exec: "bzr": executable file not found in $PATH piece indicates that bzr is unavailable.

According to go help importpath on go 1.12:

The vcs is one of "bzr", "fossil", "git", "hg", "svn".

I don't have any dependencies on fossil, hg, or svn, so I don't know whether they're available.

My redacted workflow file looks like:

on: push

jobs:
  analyze:
    name: analyze
    runs-on: ubuntu-latest
    steps:

    - name: Set up Go 1.12
      uses: actions/setup-go@v1
      with:
        go-version: 1.12
      id: go

    - name: Check out code
      uses: actions/checkout@v1

    - name: Build and run analyzer
      run: GO111MODULE=on go run example.com/analyzer ./...

Random errors when running the action

We are using the action "actions/setup-go@v1" in our repositories.

Since a coupel of days (without changing anything on our end), It's now failing with different errors every single time (sometimes the testing fails, sometimes the build fails). When you re-run the same action, it will fail at another place…

Errors we are getting are:

go tool: no such tool "vet"
go tool: no such tool "cover"
go tool: no such tool "compile"

We are also getting errors such as:

/opt/hostedtoolcache/go/1.13.8/x64/pkg/tool/linux_amd64/link: cannot open file /opt/hostedtoolcache/go/1.13.8/x64/pkg/linux_amd64/net/http/httptest.a: open /opt/hostedtoolcache/go/1.13.8/x64/pkg/linux_amd64/net/http/httptest.a: no such file or directory

Has anyone seen a similar behaviour?

The action file is a pretty simple one…

name: Go
on: [push]
jobs:

  build:
    name: Test
    runs-on: ubuntu-latest
    steps:

    - name: Set up Go 1.14
      uses: actions/setup-go@v1
      with:
        go-version: 1.14
      id: go

    - name: Check out code into the Go module directory
      uses: actions/checkout@v2
      with:
        lfs: true

    - name: Restore Cache
      uses: actions/cache@preview
      id: cache
      with:
        path: ~/go/pkg
        key: 1.14-${{ runner.os }}-${{ hashFiles('**/go.sum') }}

    - name: Get dependencies
      run: |
        go get -v -t -d ./...

    - name: Test
      run: go test -cover -short ./...

The raw action log shows the following:

2020-03-04T13:38:34.2946577Z ##[section]Starting: Request a runner to run this job
2020-03-04T13:38:34.3566351Z Requesting a hosted runner in current repository's account/organization with labels: 'ubuntu-latest', require runner match: True
2020-03-04T13:38:34.4605126Z Labels matched hosted runners has been found, waiting for one of them get assigned for this job.
2020-03-04T13:38:34.4905426Z ##[section]Finishing: Request a runner to run this job
2020-03-04T13:38:38.6127897Z Current runner version: '2.165.2'
2020-03-04T13:38:38.6129048Z Prepare workflow directory
2020-03-04T13:38:38.6397536Z Prepare all required actions
2020-03-04T13:38:38.6408391Z Download action repository 'actions/setup-go@v1'
2020-03-04T13:38:40.5808229Z Download action repository 'actions/checkout@v2'
2020-03-04T13:38:40.7727576Z Download action repository 'actions/cache@preview'
2020-03-04T13:38:40.9871223Z ##[group]Run actions/setup-go@v1
2020-03-04T13:38:40.9871563Z with:
2020-03-04T13:38:40.9871784Z   go-version: 1.14
2020-03-04T13:38:40.9871926Z ##[endgroup]
2020-03-04T13:38:43.0779544Z [command]/bin/tar xzC /home/runner/work/_temp/bac72f3f-496e-49c4-9e5d-a12b02e54e7f -f /home/runner/work/_temp/c31b9167-46d2-4611-ae72-3917fe5d7dce
2020-03-04T13:38:49.1757053Z Added matchers: 'go'. Problem matchers scan action output for known warning or error strings and report these inline.
2020-03-04T13:38:49.2140532Z ##[group]Run actions/checkout@v2
2020-03-04T13:38:49.2140696Z with:
2020-03-04T13:38:49.2140796Z   lfs: true
2020-03-04T13:38:49.2140946Z   repository: twixlmedia/go-shared
2020-03-04T13:38:49.2141468Z   token: ***
2020-03-04T13:38:49.2141572Z   persist-credentials: true
2020-03-04T13:38:49.2141685Z   clean: true
2020-03-04T13:38:49.2141792Z   fetch-depth: 1
2020-03-04T13:38:49.2141883Z env:
2020-03-04T13:38:49.2141993Z   GOROOT: /opt/hostedtoolcache/go/1.14.0/x64
2020-03-04T13:38:49.2142264Z ##[endgroup]
2020-03-04T13:38:49.3165323Z Added matchers: 'checkout-git'. Problem matchers scan action output for known warning or error strings and report these inline.
2020-03-04T13:38:49.3167016Z Syncing repository: twixlmedia/go-shared
2020-03-04T13:38:49.6213314Z Working directory is '/home/runner/work/go-shared/go-shared'
2020-03-04T13:38:49.6264185Z [command]/usr/bin/git version
2020-03-04T13:38:49.8260282Z git version 2.25.1
2020-03-04T13:38:49.8295728Z [command]/usr/bin/git lfs version
2020-03-04T13:38:50.1203962Z git-lfs/2.10.0 (GitHub; linux amd64; go 1.13.4)
2020-03-04T13:38:50.1239222Z Deleting the contents of '/home/runner/work/go-shared/go-shared'
2020-03-04T13:38:50.1243879Z [command]/usr/bin/git init /home/runner/work/go-shared/go-shared
2020-03-04T13:38:50.1420905Z Initialized empty Git repository in /home/runner/work/go-shared/go-shared/.git/
2020-03-04T13:38:50.1520207Z [command]/usr/bin/git remote add origin https://github.com/twixlmedia/go-shared
2020-03-04T13:38:50.1600537Z [command]/usr/bin/git config --local gc.auto 0
2020-03-04T13:38:50.1654848Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2020-03-04T13:38:50.1700094Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2020-03-04T13:38:50.1793986Z [command]/usr/bin/git lfs install --local
2020-03-04T13:38:50.2114246Z Updated git hooks.
2020-03-04T13:38:50.2115426Z Git LFS initialized.
2020-03-04T13:38:50.2140291Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +cc13147bf5b22fc2d8d081eaffd65c89ea9be3be:refs/remotes/origin/master
2020-03-04T13:38:50.5117152Z remote: Enumerating objects: 1033, done.        
2020-03-04T13:38:50.5120752Z remote: Counting objects:   0% (1/1033)        
2020-03-04T13:38:50.5121198Z remote: Counting objects:   1% (11/1033)        
2020-03-04T13:38:50.5121503Z remote: Counting objects:   2% (21/1033)        
2020-03-04T13:38:50.5121751Z remote: Counting objects:   3% (31/1033)        
2020-03-04T13:38:50.5122707Z remote: Counting objects:   4% (42/1033)        
2020-03-04T13:38:50.5123299Z remote: Counting objects:   5% (52/1033)        
2020-03-04T13:38:50.5124068Z remote: Counting objects:   6% (62/1033)        
2020-03-04T13:38:50.5124661Z remote: Counting objects:   7% (73/1033)        
2020-03-04T13:38:50.5125324Z remote: Counting objects:   8% (83/1033)        
2020-03-04T13:38:50.5126019Z remote: Counting objects:   9% (93/1033)        
2020-03-04T13:38:50.5126461Z remote: Counting objects:  10% (104/1033)        
2020-03-04T13:38:50.5126897Z remote: Counting objects:  11% (114/1033)        
2020-03-04T13:38:50.5127807Z remote: Counting objects:  12% (124/1033)        
2020-03-04T13:38:50.5128390Z remote: Counting objects:  13% (135/1033)        
2020-03-04T13:38:50.5128819Z remote: Counting objects:  14% (145/1033)        
2020-03-04T13:38:50.5129227Z remote: Counting objects:  15% (155/1033)        
2020-03-04T13:38:50.5129620Z remote: Counting objects:  16% (166/1033)        
2020-03-04T13:38:50.5129983Z remote: Counting objects:  17% (176/1033)        
2020-03-04T13:38:50.5130410Z remote: Counting objects:  18% (186/1033)        
2020-03-04T13:38:50.5130750Z remote: Counting objects:  19% (197/1033)        
2020-03-04T13:38:50.5131103Z remote: Counting objects:  20% (207/1033)        
2020-03-04T13:38:50.5131493Z remote: Counting objects:  21% (217/1033)        
2020-03-04T13:38:50.5132104Z remote: Counting objects:  22% (228/1033)        
2020-03-04T13:38:50.5132546Z remote: Counting objects:  23% (238/1033)        
2020-03-04T13:38:50.5133023Z remote: Counting objects:  24% (248/1033)        
2020-03-04T13:38:50.5133386Z remote: Counting objects:  25% (259/1033)        
2020-03-04T13:38:50.5133738Z remote: Counting objects:  26% (269/1033)        
2020-03-04T13:38:50.5134161Z remote: Counting objects:  27% (279/1033)        
2020-03-04T13:38:50.5134519Z remote: Counting objects:  28% (290/1033)        
2020-03-04T13:38:50.5134860Z remote: Counting objects:  29% (300/1033)        
2020-03-04T13:38:50.5135283Z remote: Counting objects:  30% (310/1033)        
2020-03-04T13:38:50.5135642Z remote: Counting objects:  31% (321/1033)        
2020-03-04T13:38:50.5136654Z remote: Counting objects:  32% (331/1033)        
2020-03-04T13:38:50.5137113Z remote: Counting objects:  33% (341/1033)        
2020-03-04T13:38:50.5137473Z remote: Counting objects:  34% (352/1033)        
2020-03-04T13:38:50.5138009Z remote: Counting objects:  35% (362/1033)        
2020-03-04T13:38:50.5138413Z remote: Counting objects:  36% (372/1033)        
2020-03-04T13:38:50.5138787Z remote: Counting objects:  37% (383/1033)        
2020-03-04T13:38:50.5139169Z remote: Counting objects:  38% (393/1033)        
2020-03-04T13:38:50.5139528Z remote: Counting objects:  39% (403/1033)        
2020-03-04T13:38:50.5139897Z remote: Counting objects:  40% (414/1033)        
2020-03-04T13:38:50.5140274Z remote: Counting objects:  41% (424/1033)        
2020-03-04T13:38:50.5140668Z remote: Counting objects:  42% (434/1033)        
2020-03-04T13:38:50.5141047Z remote: Counting objects:  43% (445/1033)        
2020-03-04T13:38:50.5141431Z remote: Counting objects:  44% (455/1033)        
2020-03-04T13:38:50.5141799Z remote: Counting objects:  45% (465/1033)        
2020-03-04T13:38:50.5142385Z remote: Counting objects:  46% (476/1033)        
2020-03-04T13:38:50.5142867Z remote: Counting objects:  47% (486/1033)        
2020-03-04T13:38:50.5143377Z remote: Counting objects:  48% (496/1033)        
2020-03-04T13:38:50.5143876Z remote: Counting objects:  49% (507/1033)        
2020-03-04T13:38:50.5144350Z remote: Counting objects:  50% (517/1033)        
2020-03-04T13:38:50.5145626Z remote: Counting objects:  51% (527/1033)        
2020-03-04T13:38:50.5146023Z remote: Counting objects:  52% (538/1033)        
2020-03-04T13:38:50.5146298Z remote: Counting objects:  53% (548/1033)        
2020-03-04T13:38:50.5146608Z remote: Counting objects:  54% (558/1033)        
2020-03-04T13:38:50.5146913Z remote: Counting objects:  55% (569/1033)        
2020-03-04T13:38:50.5147345Z remote: Counting objects:  56% (579/1033)        
2020-03-04T13:38:50.5147902Z remote: Counting objects:  57% (589/1033)        
2020-03-04T13:38:50.5148405Z remote: Counting objects:  58% (600/1033)        
2020-03-04T13:38:50.5148889Z remote: Counting objects:  59% (610/1033)        
2020-03-04T13:38:50.5149396Z remote: Counting objects:  60% (620/1033)        
2020-03-04T13:38:50.5149919Z remote: Counting objects:  61% (631/1033)        
2020-03-04T13:38:50.5150524Z remote: Counting objects:  62% (641/1033)        
2020-03-04T13:38:50.5150995Z remote: Counting objects:  63% (651/1033)        
2020-03-04T13:38:50.5151325Z remote: Counting objects:  64% (662/1033)        
2020-03-04T13:38:50.5151748Z remote: Counting objects:  65% (672/1033)        
2020-03-04T13:38:50.5152167Z remote: Counting objects:  66% (682/1033)        
2020-03-04T13:38:50.5152603Z remote: Counting objects:  67% (693/1033)        
2020-03-04T13:38:50.5153033Z remote: Counting objects:  68% (703/1033)        
2020-03-04T13:38:50.5153669Z remote: Counting objects:  69% (713/1033)        
2020-03-04T13:38:50.5154123Z remote: Counting objects:  70% (724/1033)        
2020-03-04T13:38:50.5154558Z remote: Counting objects:  71% (734/1033)        
2020-03-04T13:38:50.5154986Z remote: Counting objects:  72% (744/1033)        
2020-03-04T13:38:50.5155424Z remote: Counting objects:  73% (755/1033)        
2020-03-04T13:38:50.5155920Z remote: Counting objects:  74% (765/1033)        
2020-03-04T13:38:50.5156212Z remote: Counting objects:  75% (775/1033)        
2020-03-04T13:38:50.5156968Z remote: Counting objects:  76% (786/1033)        
2020-03-04T13:38:50.5158337Z remote: Counting objects:  77% (796/1033)        
2020-03-04T13:38:50.5158735Z remote: Counting objects:  78% (806/1033)        
2020-03-04T13:38:50.5159419Z remote: Counting objects:  79% (817/1033)        
2020-03-04T13:38:50.5159976Z remote: Counting objects:  80% (827/1033)        
2020-03-04T13:38:50.5160431Z remote: Counting objects:  81% (837/1033)        
2020-03-04T13:38:50.5160865Z remote: Counting objects:  82% (848/1033)        
2020-03-04T13:38:50.5161317Z remote: Counting objects:  83% (858/1033)        
2020-03-04T13:38:50.5161727Z remote: Counting objects:  84% (868/1033)        
2020-03-04T13:38:50.5162169Z remote: Counting objects:  85% (879/1033)        
2020-03-04T13:38:50.5163088Z remote: Counting objects:  86% (889/1033)        
2020-03-04T13:38:50.5163353Z remote: Counting objects:  87% (899/1033)        
2020-03-04T13:38:50.5163594Z remote: Counting objects:  88% (910/1033)        
2020-03-04T13:38:50.5163830Z remote: Counting objects:  89% (920/1033)        
2020-03-04T13:38:50.5164065Z remote: Counting objects:  90% (930/1033)        
2020-03-04T13:38:50.5164333Z remote: Counting objects:  91% (941/1033)        
2020-03-04T13:38:50.5164567Z remote: Counting objects:  92% (951/1033)        
2020-03-04T13:38:50.5164940Z remote: Counting objects:  93% (961/1033)        
2020-03-04T13:38:50.5165189Z remote: Counting objects:  94% (972/1033)        
2020-03-04T13:38:50.5165427Z remote: Counting objects:  95% (982/1033)        
2020-03-04T13:38:50.5165809Z remote: Counting objects:  96% (992/1033)        
2020-03-04T13:38:50.5166050Z remote: Counting objects:  97% (1003/1033)        
2020-03-04T13:38:50.5166292Z remote: Counting objects:  98% (1013/1033)        
2020-03-04T13:38:50.5166535Z remote: Counting objects:  99% (1023/1033)        
2020-03-04T13:38:50.5166786Z remote: Counting objects: 100% (1033/1033)        
2020-03-04T13:38:50.5167018Z remote: Counting objects: 100% (1033/1033), done.        
2020-03-04T13:38:50.5167282Z remote: Compressing objects:   0% (1/819)        
2020-03-04T13:38:50.5167533Z remote: Compressing objects:   1% (9/819)        
2020-03-04T13:38:50.5167876Z remote: Compressing objects:   2% (17/819)        
2020-03-04T13:38:50.5168127Z remote: Compressing objects:   3% (25/819)        
2020-03-04T13:38:50.5168357Z remote: Compressing objects:   4% (33/819)        
2020-03-04T13:38:50.5168600Z remote: Compressing objects:   5% (41/819)        
2020-03-04T13:38:50.5168847Z remote: Compressing objects:   6% (50/819)        
2020-03-04T13:38:50.5169395Z remote: Compressing objects:   7% (58/819)        
2020-03-04T13:38:50.5169596Z remote: Compressing objects:   8% (66/819)        
2020-03-04T13:38:50.5169739Z remote: Compressing objects:   9% (74/819)        
2020-03-04T13:38:50.5169893Z remote: Compressing objects:  10% (82/819)        
2020-03-04T13:38:50.5175876Z remote: Compressing objects:  11% (91/819)        
2020-03-04T13:38:50.5181296Z remote: Compressing objects:  12% (99/819)        
2020-03-04T13:38:50.5202075Z remote: Compressing objects:  13% (107/819)        
2020-03-04T13:38:50.5205261Z remote: Compressing objects:  14% (115/819)        
2020-03-04T13:38:50.5214094Z remote: Compressing objects:  15% (123/819)        
2020-03-04T13:38:50.5223762Z remote: Compressing objects:  16% (132/819)        
2020-03-04T13:38:50.5263269Z remote: Compressing objects:  17% (140/819)        
2020-03-04T13:38:50.5265626Z remote: Compressing objects:  18% (148/819)        
2020-03-04T13:38:50.5266141Z remote: Compressing objects:  19% (156/819)        
2020-03-04T13:38:50.5266359Z remote: Compressing objects:  20% (164/819)        
2020-03-04T13:38:50.5266518Z remote: Compressing objects:  21% (172/819)        
2020-03-04T13:38:50.5266712Z remote: Compressing objects:  22% (181/819)        
2020-03-04T13:38:50.5267141Z remote: Compressing objects:  23% (189/819)        
2020-03-04T13:38:50.5267287Z remote: Compressing objects:  24% (197/819)        
2020-03-04T13:38:50.5270007Z remote: Compressing objects:  25% (205/819)        
2020-03-04T13:38:50.5273904Z remote: Compressing objects:  26% (213/819)        
2020-03-04T13:38:50.5288210Z remote: Compressing objects:  27% (222/819)        
2020-03-04T13:38:50.5302606Z remote: Compressing objects:  28% (230/819)        
2020-03-04T13:38:50.5318322Z remote: Compressing objects:  29% (238/819)        
2020-03-04T13:38:50.5330518Z remote: Compressing objects:  30% (246/819)        
2020-03-04T13:38:50.5334754Z remote: Compressing objects:  31% (254/819)        
2020-03-04T13:38:50.5362349Z remote: Compressing objects:  32% (263/819)        
2020-03-04T13:38:50.5367704Z remote: Compressing objects:  33% (271/819)        
2020-03-04T13:38:50.5367924Z remote: Compressing objects:  34% (279/819)        
2020-03-04T13:38:50.5369266Z remote: Compressing objects:  35% (287/819)        
2020-03-04T13:38:50.5375855Z remote: Compressing objects:  36% (295/819)        
2020-03-04T13:38:50.5383042Z remote: Compressing objects:  37% (304/819)        
2020-03-04T13:38:50.5387200Z remote: Compressing objects:  38% (312/819)        
2020-03-04T13:38:50.5395040Z remote: Compressing objects:  39% (320/819)        
2020-03-04T13:38:50.5396815Z remote: Compressing objects:  40% (328/819)        
2020-03-04T13:38:50.5400581Z remote: Compressing objects:  41% (336/819)        
2020-03-04T13:38:50.5407020Z remote: Compressing objects:  42% (344/819)        
2020-03-04T13:38:50.5408024Z remote: Compressing objects:  43% (353/819)        
2020-03-04T13:38:50.5408167Z remote: Compressing objects:  44% (361/819)        
2020-03-04T13:38:50.5411551Z remote: Compressing objects:  45% (369/819)        
2020-03-04T13:38:50.5413536Z remote: Compressing objects:  46% (377/819)        
2020-03-04T13:38:50.5414340Z remote: Compressing objects:  47% (385/819)        
2020-03-04T13:38:50.5414616Z remote: Compressing objects:  48% (394/819)        
2020-03-04T13:38:50.5414799Z remote: Compressing objects:  49% (402/819)        
2020-03-04T13:38:50.5414950Z remote: Compressing objects:  50% (410/819)        
2020-03-04T13:38:50.5416473Z remote: Compressing objects:  51% (418/819)        
2020-03-04T13:38:50.5417432Z remote: Compressing objects:  52% (426/819)        
2020-03-04T13:38:50.5417576Z remote: Compressing objects:  53% (435/819)        
2020-03-04T13:38:50.5417729Z remote: Compressing objects:  54% (443/819)        
2020-03-04T13:38:50.5417876Z remote: Compressing objects:  55% (451/819)        
2020-03-04T13:38:50.5418026Z remote: Compressing objects:  56% (459/819)        
2020-03-04T13:38:50.5418158Z remote: Compressing objects:  57% (467/819)        
2020-03-04T13:38:50.5418308Z remote: Compressing objects:  58% (476/819)        
2020-03-04T13:38:50.5418457Z remote: Compressing objects:  59% (484/819)        
2020-03-04T13:38:50.5418604Z remote: Compressing objects:  60% (492/819)        
2020-03-04T13:38:50.5418762Z remote: Compressing objects:  61% (500/819)        
2020-03-04T13:38:50.5418897Z remote: Compressing objects:  62% (508/819)        
2020-03-04T13:38:50.5419045Z remote: Compressing objects:  63% (516/819)        
2020-03-04T13:38:50.5419423Z remote: Compressing objects:  64% (525/819)        
2020-03-04T13:38:50.5419572Z remote: Compressing objects:  65% (533/819)        
2020-03-04T13:38:50.5419704Z remote: Compressing objects:  66% (541/819)        
2020-03-04T13:38:50.5419851Z remote: Compressing objects:  67% (549/819)        
2020-03-04T13:38:50.5419998Z remote: Compressing objects:  68% (557/819)        
2020-03-04T13:38:50.5420144Z remote: Compressing objects:  69% (566/819)        
2020-03-04T13:38:50.5420279Z remote: Compressing objects:  70% (574/819)        
2020-03-04T13:38:50.5420426Z remote: Compressing objects:  71% (582/819)        
2020-03-04T13:38:50.5420573Z remote: Compressing objects:  72% (590/819)        
2020-03-04T13:38:50.5420719Z remote: Compressing objects:  73% (598/819)        
2020-03-04T13:38:50.5420924Z remote: Compressing objects:  74% (607/819)        
2020-03-04T13:38:50.5421082Z remote: Compressing objects:  75% (615/819)        
2020-03-04T13:38:50.5421237Z remote: Compressing objects:  76% (623/819)        
2020-03-04T13:38:50.5421383Z remote: Compressing objects:  77% (631/819)        
2020-03-04T13:38:50.5421516Z remote: Compressing objects:  78% (639/819)        
2020-03-04T13:38:50.5421662Z remote: Compressing objects:  79% (648/819)        
2020-03-04T13:38:50.5421811Z remote: Compressing objects:  80% (656/819)        
2020-03-04T13:38:50.5421958Z remote: Compressing objects:  81% (664/819)        
2020-03-04T13:38:50.5422091Z remote: Compressing objects:  82% (672/819)        
2020-03-04T13:38:50.5422237Z remote: Compressing objects:  83% (680/819)        
2020-03-04T13:38:50.5422384Z remote: Compressing objects:  84% (688/819)        
2020-03-04T13:38:50.5422530Z remote: Compressing objects:  85% (697/819)        
2020-03-04T13:38:50.5422664Z remote: Compressing objects:  86% (705/819)        
2020-03-04T13:38:50.5422818Z remote: Compressing objects:  87% (713/819)        
2020-03-04T13:38:50.5422964Z remote: Compressing objects:  88% (721/819)        
2020-03-04T13:38:50.5423116Z remote: Compressing objects:  89% (729/819)        
2020-03-04T13:38:50.5423262Z remote: Compressing objects:  90% (738/819)        
2020-03-04T13:38:50.5423397Z remote: Compressing objects:  91% (746/819)        
2020-03-04T13:38:50.5423542Z remote: Compressing objects:  92% (754/819)        
2020-03-04T13:38:50.5423688Z remote: Compressing objects:  93% (762/819)        
2020-03-04T13:38:50.5423879Z remote: Compressing objects:  94% (770/819)        
2020-03-04T13:38:50.5424013Z remote: Compressing objects:  95% (779/819)        
2020-03-04T13:38:50.5424162Z remote: Compressing objects:  96% (787/819)        
2020-03-04T13:38:50.5424308Z remote: Compressing objects:  97% (795/819)        
2020-03-04T13:38:50.5424454Z remote: Compressing objects:  98% (803/819)        
2020-03-04T13:38:50.5424590Z remote: Compressing objects:  99% (811/819)        
2020-03-04T13:38:50.5424738Z remote: Compressing objects: 100% (819/819)        
2020-03-04T13:38:50.5424896Z remote: Compressing objects: 100% (819/819), done.        
2020-03-04T13:38:50.5466158Z Receiving objects:   0% (1/1033)
2020-03-04T13:38:50.5472833Z Receiving objects:   1% (11/1033)
2020-03-04T13:38:50.5475787Z Receiving objects:   2% (21/1033)
2020-03-04T13:38:50.5480027Z Receiving objects:   3% (31/1033)
2020-03-04T13:38:50.5491436Z Receiving objects:   4% (42/1033)
2020-03-04T13:38:50.5494848Z Receiving objects:   5% (52/1033)
2020-03-04T13:38:50.5519841Z Receiving objects:   6% (62/1033)
2020-03-04T13:38:50.5522228Z Receiving objects:   7% (73/1033)
2020-03-04T13:38:50.5525903Z Receiving objects:   8% (83/1033)
2020-03-04T13:38:50.5529433Z Receiving objects:   9% (93/1033)
2020-03-04T13:38:50.5533630Z Receiving objects:  10% (104/1033)
2020-03-04T13:38:50.5537591Z Receiving objects:  11% (114/1033)
2020-03-04T13:38:50.5541659Z Receiving objects:  12% (124/1033)
2020-03-04T13:38:50.5543699Z Receiving objects:  13% (135/1033)
2020-03-04T13:38:50.5546400Z Receiving objects:  14% (145/1033)
2020-03-04T13:38:50.5575083Z Receiving objects:  15% (155/1033)
2020-03-04T13:38:50.5575586Z Receiving objects:  16% (166/1033)
2020-03-04T13:38:50.5598737Z Receiving objects:  17% (176/1033)
2020-03-04T13:38:50.5602065Z Receiving objects:  18% (186/1033)
2020-03-04T13:38:50.5604762Z Receiving objects:  19% (197/1033)
2020-03-04T13:38:50.5631145Z Receiving objects:  20% (207/1033)
2020-03-04T13:38:50.5634581Z Receiving objects:  21% (217/1033)
2020-03-04T13:38:50.5636655Z Receiving objects:  22% (228/1033)
2020-03-04T13:38:50.5644063Z Receiving objects:  23% (238/1033)
2020-03-04T13:38:50.5649644Z Receiving objects:  24% (248/1033)
2020-03-04T13:38:50.5678985Z Receiving objects:  25% (259/1033)
2020-03-04T13:38:50.5680711Z Receiving objects:  26% (269/1033)
2020-03-04T13:38:50.5682211Z Receiving objects:  27% (279/1033)
2020-03-04T13:38:50.5684439Z Receiving objects:  28% (290/1033)
2020-03-04T13:38:50.5695994Z Receiving objects:  29% (300/1033)
2020-03-04T13:38:50.5729934Z Receiving objects:  30% (310/1033)
2020-03-04T13:38:50.5733762Z Receiving objects:  31% (321/1033)
2020-03-04T13:38:50.5735309Z Receiving objects:  32% (331/1033)
2020-03-04T13:38:50.5745389Z Receiving objects:  33% (341/1033)
2020-03-04T13:38:50.5748723Z Receiving objects:  34% (352/1033)
2020-03-04T13:38:50.5752024Z Receiving objects:  35% (362/1033)
2020-03-04T13:38:50.5784178Z Receiving objects:  36% (372/1033)
2020-03-04T13:38:50.5786027Z Receiving objects:  37% (383/1033)
2020-03-04T13:38:50.5786423Z Receiving objects:  38% (393/1033)
2020-03-04T13:38:50.5786744Z Receiving objects:  39% (403/1033)
2020-03-04T13:38:50.5788213Z Receiving objects:  40% (414/1033)
2020-03-04T13:38:50.5788549Z Receiving objects:  41% (424/1033)
2020-03-04T13:38:50.5789915Z Receiving objects:  42% (434/1033)
2020-03-04T13:38:50.5790255Z Receiving objects:  43% (445/1033)
2020-03-04T13:38:50.5790661Z Receiving objects:  44% (455/1033)
2020-03-04T13:38:50.5792887Z Receiving objects:  45% (465/1033)
2020-03-04T13:38:50.5797082Z Receiving objects:  46% (476/1033)
2020-03-04T13:38:50.5798731Z Receiving objects:  47% (486/1033)
2020-03-04T13:38:50.5799017Z Receiving objects:  48% (496/1033)
2020-03-04T13:38:50.5799248Z Receiving objects:  49% (507/1033)
2020-03-04T13:38:50.5799498Z Receiving objects:  50% (517/1033)
2020-03-04T13:38:50.5800998Z Receiving objects:  51% (527/1033)
2020-03-04T13:38:50.5801273Z Receiving objects:  52% (538/1033)
2020-03-04T13:38:50.5801522Z Receiving objects:  53% (548/1033)
2020-03-04T13:38:50.5801748Z Receiving objects:  54% (558/1033)
2020-03-04T13:38:50.5803132Z Receiving objects:  55% (569/1033)
2020-03-04T13:38:50.5803411Z Receiving objects:  56% (579/1033)
2020-03-04T13:38:50.5803658Z Receiving objects:  57% (589/1033)
2020-03-04T13:38:50.5803898Z Receiving objects:  58% (600/1033)
2020-03-04T13:38:50.5805289Z Receiving objects:  59% (610/1033)
2020-03-04T13:38:50.5805580Z Receiving objects:  60% (620/1033)
2020-03-04T13:38:50.5805869Z Receiving objects:  61% (631/1033)
2020-03-04T13:38:50.5808173Z Receiving objects:  62% (641/1033)
2020-03-04T13:38:50.5808461Z Receiving objects:  63% (651/1033)
2020-03-04T13:38:50.5808709Z Receiving objects:  64% (662/1033)
2020-03-04T13:38:50.5808956Z Receiving objects:  65% (672/1033)
2020-03-04T13:38:50.5809201Z Receiving objects:  66% (682/1033)
2020-03-04T13:38:50.5812017Z Receiving objects:  67% (693/1033)
2020-03-04T13:38:50.5812507Z Receiving objects:  68% (703/1033)
2020-03-04T13:38:50.5838382Z Receiving objects:  69% (713/1033)
2020-03-04T13:38:50.5840413Z Receiving objects:  70% (724/1033)
2020-03-04T13:38:50.5840813Z Receiving objects:  71% (734/1033)
2020-03-04T13:38:50.5841136Z Receiving objects:  72% (744/1033)
2020-03-04T13:38:50.5841449Z Receiving objects:  73% (755/1033)
2020-03-04T13:38:50.5842913Z Receiving objects:  74% (765/1033)
2020-03-04T13:38:50.5843243Z Receiving objects:  75% (775/1033)
2020-03-04T13:38:50.5843555Z Receiving objects:  76% (786/1033)
2020-03-04T13:38:50.5844031Z Receiving objects:  77% (796/1033)
2020-03-04T13:38:50.5844413Z Receiving objects:  78% (806/1033)
2020-03-04T13:38:50.5846477Z Receiving objects:  79% (817/1033)
2020-03-04T13:38:50.5846859Z Receiving objects:  80% (827/1033)
2020-03-04T13:38:50.5848331Z Receiving objects:  81% (837/1033)
2020-03-04T13:38:50.5848677Z Receiving objects:  82% (848/1033)
2020-03-04T13:38:50.5850063Z Receiving objects:  83% (858/1033)
2020-03-04T13:38:50.5850395Z Receiving objects:  84% (868/1033)
2020-03-04T13:38:50.5850708Z Receiving objects:  85% (879/1033)
2020-03-04T13:38:50.5851022Z Receiving objects:  86% (889/1033)
2020-03-04T13:38:50.5852368Z Receiving objects:  87% (899/1033)
2020-03-04T13:38:50.5852710Z Receiving objects:  88% (910/1033)
2020-03-04T13:38:50.5853011Z Receiving objects:  89% (920/1033)
2020-03-04T13:38:50.5853325Z Receiving objects:  90% (930/1033)
2020-03-04T13:38:50.5854664Z Receiving objects:  91% (941/1033)
2020-03-04T13:38:50.5856998Z Receiving objects:  92% (951/1033)
2020-03-04T13:38:50.5859163Z Receiving objects:  93% (961/1033)
2020-03-04T13:38:50.5860681Z Receiving objects:  94% (972/1033)
2020-03-04T13:38:50.5863354Z Receiving objects:  95% (982/1033)
2020-03-04T13:38:50.5864902Z Receiving objects:  96% (992/1033)
2020-03-04T13:38:50.5866953Z Receiving objects:  97% (1003/1033)
2020-03-04T13:38:50.5889781Z Receiving objects:  98% (1013/1033)
2020-03-04T13:38:50.5892455Z remote: Total 1033 (delta 150), reused 824 (delta 144), pack-reused 0        
2020-03-04T13:38:50.5895099Z Receiving objects:  99% (1023/1033)
2020-03-04T13:38:50.5895533Z Receiving objects: 100% (1033/1033)
2020-03-04T13:38:50.5895891Z Receiving objects: 100% (1033/1033), 379.86 KiB | 8.63 MiB/s, done.
2020-03-04T13:38:50.5898315Z Resolving deltas:   0% (0/150)
2020-03-04T13:38:50.5898694Z Resolving deltas:   1% (2/150)
2020-03-04T13:38:50.5899009Z Resolving deltas:   2% (3/150)
2020-03-04T13:38:50.5901280Z Resolving deltas:   3% (5/150)
2020-03-04T13:38:50.5901695Z Resolving deltas:   4% (6/150)
2020-03-04T13:38:50.5902034Z Resolving deltas:   5% (8/150)
2020-03-04T13:38:50.5902331Z Resolving deltas:   6% (10/150)
2020-03-04T13:38:50.5902656Z Resolving deltas:   8% (12/150)
2020-03-04T13:38:50.5902962Z Resolving deltas:   9% (14/150)
2020-03-04T13:38:50.5903266Z Resolving deltas:  10% (15/150)
2020-03-04T13:38:50.5904722Z Resolving deltas:  11% (17/150)
2020-03-04T13:38:50.5906105Z Resolving deltas:  12% (18/150)
2020-03-04T13:38:50.5906448Z Resolving deltas:  13% (20/150)
2020-03-04T13:38:50.5906764Z Resolving deltas:  14% (21/150)
2020-03-04T13:38:50.5907068Z Resolving deltas:  15% (23/150)
2020-03-04T13:38:50.5909357Z Resolving deltas:  16% (24/150)
2020-03-04T13:38:50.5911857Z Resolving deltas:  35% (53/150)
2020-03-04T13:38:50.5913055Z Resolving deltas:  40% (60/150)
2020-03-04T13:38:50.5914958Z Resolving deltas:  41% (62/150)
2020-03-04T13:38:50.5916332Z Resolving deltas:  42% (64/150)
2020-03-04T13:38:50.5916576Z Resolving deltas:  44% (66/150)
2020-03-04T13:38:50.5916762Z Resolving deltas:  45% (68/150)
2020-03-04T13:38:50.5917970Z Resolving deltas:  46% (69/150)
2020-03-04T13:38:50.5919197Z Resolving deltas:  47% (71/150)
2020-03-04T13:38:50.5921253Z Resolving deltas:  49% (74/150)
2020-03-04T13:38:50.5921472Z Resolving deltas:  50% (75/150)
2020-03-04T13:38:50.5921670Z Resolving deltas:  52% (78/150)
2020-03-04T13:38:50.5921807Z Resolving deltas:  53% (80/150)
2020-03-04T13:38:50.5922965Z Resolving deltas:  54% (81/150)
2020-03-04T13:38:50.5923201Z Resolving deltas:  55% (83/150)
2020-03-04T13:38:50.5924631Z Resolving deltas:  56% (84/150)
2020-03-04T13:38:50.5925870Z Resolving deltas:  57% (86/150)
2020-03-04T13:38:50.5927125Z Resolving deltas:  58% (88/150)
2020-03-04T13:38:50.5928374Z Resolving deltas:  59% (89/150)
2020-03-04T13:38:50.5947996Z Resolving deltas:  60% (91/150)
2020-03-04T13:38:50.5948640Z Resolving deltas: 100% (150/150)
2020-03-04T13:38:50.5948830Z Resolving deltas: 100% (150/150), done.
2020-03-04T13:38:50.7974354Z From https://github.com/twixlmedia/go-shared
2020-03-04T13:38:50.7975187Z  * [new ref]         cc13147bf5b22fc2d8d081eaffd65c89ea9be3be -> origin/master
2020-03-04T13:38:50.8008103Z [command]/usr/bin/git lfs fetch origin refs/remotes/origin/master
2020-03-04T13:38:50.8151915Z fetch: Fetching reference refs/remotes/origin/master
2020-03-04T13:38:55.7680310Z [command]/usr/bin/git checkout --progress --force -B master refs/remotes/origin/master
2020-03-04T13:38:56.0632731Z Reset branch 'master'
2020-03-04T13:38:56.0633591Z Branch 'master' set up to track remote branch 'master' from 'origin'.
2020-03-04T13:38:56.0921085Z [command]/usr/bin/git log -1
2020-03-04T13:38:56.0949838Z commit cc13147bf5b22fc2d8d081eaffd65c89ea9be3be
2020-03-04T13:38:56.0950427Z Author: Pieter Claerhout <[email protected]>
2020-03-04T13:38:56.0950695Z Date:   Wed Mar 4 14:38:29 2020 +0100
2020-03-04T13:38:56.0951159Z 
2020-03-04T13:38:56.0951981Z     Merge pull request #5 from twixlmedia/feature/4896-no-article-with-name
2020-03-04T13:38:56.0952163Z     
2020-03-04T13:38:56.0952735Z     Feature/4896 no article with name
2020-03-04T13:38:56.0962627Z Removed matchers: 'checkout-git'
2020-03-04T13:38:56.1810464Z ##[group]Run actions/cache@preview
2020-03-04T13:38:56.1810610Z with:
2020-03-04T13:38:56.1810697Z   path: ~/go/pkg
2020-03-04T13:38:56.1810809Z   key: 1.14-Linux-d2f412b3ecf8b0bf13e617410a6d941bd18fe6a737f4632b4ebdeebd1d25f133
2020-03-04T13:38:56.1810926Z env:
2020-03-04T13:38:56.1811027Z   GOROOT: /opt/hostedtoolcache/go/1.14.0/x64
2020-03-04T13:38:56.1811113Z ##[endgroup]
2020-03-04T13:38:56.2857316Z Cache not found for input keys: ["1.14-Linux-d2f412b3ecf8b0bf13e617410a6d941bd18fe6a737f4632b4ebdeebd1d25f133",""].
2020-03-04T13:38:56.3131542Z ##[group]Run go get -v -t -d ./...
2020-03-04T13:38:56.3131829Z �[36;1mgo get -v -t -d ./...�[0m
2020-03-04T13:38:56.3170244Z shell: /bin/bash -e {0}
2020-03-04T13:38:56.3170348Z env:
2020-03-04T13:38:56.3170460Z   GOROOT: /opt/hostedtoolcache/go/1.14.0/x64
2020-03-04T13:38:56.3170564Z ##[endgroup]
2020-03-04T13:38:56.8914801Z go: downloading github.com/pkg/errors v0.9.1
2020-03-04T13:38:56.8929060Z go: downloading github.com/oleiade/reflections v1.0.0
2020-03-04T13:38:56.8956891Z go: downloading github.com/bartmeuris/progressio v0.0.0-20200108093145-1c8416d08c4d
2020-03-04T13:38:56.8976817Z go: downloading github.com/spf13/cobra v0.0.6
2020-03-04T13:38:56.8994615Z go: downloading github.com/pieterclaerhout/go-waitgroup v1.0.7
2020-03-04T13:38:56.9026185Z go: downloading github.com/aws/aws-sdk-go v1.29.15
2020-03-04T13:38:56.9064664Z go: downloading github.com/tdewolff/minify v2.3.6+incompatible
2020-03-04T13:38:56.9078954Z go: downloading github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b
2020-03-04T13:38:56.9081959Z go: downloading golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073
2020-03-04T13:38:56.9146776Z go: downloading github.com/sanity-io/litter v1.2.0
2020-03-04T13:38:56.9322716Z go: downloading github.com/mattn/go-colorable v0.1.4
2020-03-04T13:38:56.9416963Z go: downloading github.com/go-errors/errors v1.0.1
2020-03-04T13:38:56.9497603Z go: downloading github.com/stretchr/testify v1.5.1
2020-03-04T13:38:56.9547281Z go: downloading github.com/dgryski/dgoogauth v0.0.0-20190221195224-5a805980a5f3
2020-03-04T13:38:56.9751026Z go: downloading github.com/disintegration/imaging v1.6.2
2020-03-04T13:38:57.0017952Z go: downloading github.com/yeka/zip v0.0.0-20180914125537-d046722c6feb
2020-03-04T13:38:57.0046157Z go: downloading github.com/beevik/etree v1.1.0
2020-03-04T13:38:57.0468262Z go: downloading github.com/pborman/uuid v1.2.0
2020-03-04T13:38:57.0997272Z go: downloading github.com/gin-gonic/gin v1.5.0
2020-03-04T13:38:57.1794053Z go: downloading golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8
2020-03-04T13:38:57.1829970Z go: downloading github.com/Azure/azure-storage-blob-go v0.8.0
2020-03-04T13:38:57.2206441Z go: downloading github.com/beefsack/go-rate v0.0.0-20180408011153-efa7637bb9b6
2020-03-04T13:38:57.3729372Z go: downloading github.com/tdewolff/parse v2.3.4+incompatible
2020-03-04T13:38:57.3738196Z go: downloading github.com/Azure/azure-sdk-for-go v40.0.0+incompatible
2020-03-04T13:38:57.5437730Z go: downloading github.com/mattn/go-isatty v0.0.9
2020-03-04T13:38:57.5622426Z go: downloading github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
2020-03-04T13:38:57.5738783Z go: downloading github.com/ugorji/go v1.1.7
2020-03-04T13:38:57.5916432Z go: downloading github.com/gin-contrib/sse v0.1.0
2020-03-04T13:38:57.6083612Z go: downloading github.com/ugorji/go/codec v1.1.7
2020-03-04T13:38:57.6317647Z go: downloading github.com/pmezard/go-difflib v1.0.0
2020-03-04T13:38:57.7145427Z go: downloading github.com/skip2/go-qrcode v0.0.0-20191027152451-9434209cb086
2020-03-04T13:38:57.7199089Z go: downloading github.com/Flaque/filet v0.0.0-20190209224823-fc4d33cfcf93
2020-03-04T13:38:57.7770302Z go: downloading golang.org/x/text v0.3.2
2020-03-04T13:38:57.7827223Z go: downloading github.com/spf13/afero v1.1.2
2020-03-04T13:38:57.8179332Z go: downloading github.com/microcosm-cc/bluemonday v1.0.2
2020-03-04T13:38:57.8385126Z go: downloading github.com/inconshreveable/mousetrap v1.0.0
2020-03-04T13:38:57.8542566Z go: downloading golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e
2020-03-04T13:38:57.9244295Z go: downloading github.com/Azure/azure-pipeline-go v0.2.1
2020-03-04T13:38:57.9464105Z go: downloading github.com/jdkato/prose v1.1.1
2020-03-04T13:38:59.1445342Z go: downloading golang.org/x/net v0.0.0-20200202094626-16171245cfb2
2020-03-04T13:38:59.1520643Z go: downloading github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149
2020-03-04T13:38:59.1594742Z go: downloading github.com/davecgh/go-spew v1.1.1
2020-03-04T13:38:59.1844866Z go: downloading github.com/tidwall/gjson v1.6.0
2020-03-04T13:38:59.2109439Z go: downloading github.com/spf13/pflag v1.0.3
2020-03-04T13:38:59.2168998Z go: downloading github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca
2020-03-04T13:38:59.3102891Z go: downloading golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a
2020-03-04T13:38:59.3144426Z go: downloading github.com/tidwall/match v1.0.1
2020-03-04T13:38:59.7716341Z go: downloading github.com/tidwall/pretty v1.0.0
2020-03-04T13:38:59.7729259Z go: downloading gopkg.in/yaml.v2 v2.2.2
2020-03-04T13:38:59.8074551Z go: downloading github.com/google/uuid v1.0.0
2020-03-04T13:38:59.8763088Z go: downloading github.com/golang/protobuf v1.3.2
2020-03-04T13:38:59.9815931Z go: downloading github.com/json-iterator/go v1.1.7
2020-03-04T13:39:00.0004708Z go: downloading gopkg.in/go-playground/validator.v9 v9.29.1
2020-03-04T13:39:00.0577608Z go: downloading github.com/shogo82148/androidbinary v1.0.1
2020-03-04T13:39:00.0630879Z go: downloading github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742
2020-03-04T13:39:00.0835543Z go: downloading github.com/andrianbdn/iospng v0.0.0-20180730113000-dccef1992541
2020-03-04T13:39:00.1371016Z go: downloading github.com/go-playground/universal-translator v0.16.0
2020-03-04T13:39:00.1973518Z go: downloading github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421
2020-03-04T13:39:00.1975824Z go: downloading github.com/leodido/go-urn v1.1.0
2020-03-04T13:39:00.2032194Z go: downloading github.com/go-playground/locales v0.12.1
2020-03-04T13:39:00.2384898Z go: downloading golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7
2020-03-04T13:39:00.8891955Z go: downloading github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af
2020-03-04T13:39:04.3104485Z go: downloading github.com/Azure/go-autorest/autorest v0.9.5
2020-03-04T13:39:04.3106176Z go: downloading github.com/satori/go.uuid v1.2.0
2020-03-04T13:39:05.8483413Z go: downloading github.com/Azure/go-autorest/tracing v0.5.0
2020-03-04T13:39:05.8527820Z go: downloading github.com/Azure/go-autorest/logger v0.1.0
2020-03-04T13:39:05.8528313Z go: downloading github.com/Azure/go-autorest/autorest/adal v0.8.2
2020-03-04T13:39:06.3311847Z go: downloading github.com/dgrijalva/jwt-go v3.2.0+incompatible
2020-03-04T13:39:06.3312646Z go: downloading github.com/Azure/go-autorest/autorest/date v0.2.0
2020-03-04T13:39:06.4087648Z ##[group]Run go test -cover -short ./...
2020-03-04T13:39:06.4087857Z �[36;1mgo test -cover -short ./...�[0m
2020-03-04T13:39:06.4126268Z shell: /bin/bash -e {0}
2020-03-04T13:39:06.4126501Z env:
2020-03-04T13:39:06.4126613Z   GOROOT: /opt/hostedtoolcache/go/1.14.0/x64
2020-03-04T13:39:06.4126720Z ##[endgroup]
2020-03-04T13:39:26.6316454Z ok  	github.com/twixlmedia/go-shared	0.032s	coverage: 0.0% of statements [no tests to run]
2020-03-04T13:39:26.6317492Z ok  	github.com/twixlmedia/go-shared/twxas	0.004s	coverage: 100.0% of statements
2020-03-04T13:39:28.6958845Z ok  	github.com/twixlmedia/go-shared/twxauth	0.003s	coverage: 100.0% of statements
2020-03-04T13:39:29.3153518Z ok  	github.com/twixlmedia/go-shared/twxcellsizecalculator	0.004s	coverage: 100.0% of statements
2020-03-04T13:39:29.3155501Z ok  	github.com/twixlmedia/go-shared/twxcmd	0.008s	coverage: 18.4% of statements [no tests to run]
2020-03-04T13:39:29.8753744Z ok  	github.com/twixlmedia/go-shared/twxcore	0.006s	coverage: 85.9% of statements
2020-03-04T13:39:30.5015560Z ok  	github.com/twixlmedia/go-shared/twxcrypto	0.331s	coverage: 92.6% of statements
2020-03-04T13:39:30.6190709Z ok  	github.com/twixlmedia/go-shared/twxdatatypes	0.007s	coverage: 100.0% of statements
2020-03-04T13:39:31.2014910Z ok  	github.com/twixlmedia/go-shared/twxdate	0.004s	coverage: 100.0% of statements
2020-03-04T13:39:31.3598957Z ok  	github.com/twixlmedia/go-shared/twxdebug	0.005s	coverage: 100.0% of statements
2020-03-04T13:39:32.3667974Z ok  	github.com/twixlmedia/go-shared/twxdns	0.322s	coverage: 100.0% of statements
2020-03-04T13:39:38.9206167Z ok  	github.com/twixlmedia/go-shared/twxdownload	3.012s	coverage: 97.1% of statements
2020-03-04T13:39:40.7376038Z ok  	github.com/twixlmedia/go-shared/twxentitlements	4.779s	coverage: 100.0% of statements
2020-03-04T13:39:40.7377000Z ok  	github.com/twixlmedia/go-shared/twxfile	0.011s	coverage: 0.0% of statements [no tests to run]
2020-03-04T13:39:40.7377679Z ok  	github.com/twixlmedia/go-shared/twxfilemaker	0.004s	coverage: 1.3% of statements
2020-03-04T13:39:41.3713773Z ok  	github.com/twixlmedia/go-shared/twxfinance	0.506s	coverage: 75.0% of statements
2020-03-04T13:39:43.5114912Z ok  	github.com/twixlmedia/go-shared/twxformatter	2.014s	coverage: 98.9% of statements
2020-03-04T13:39:44.8519249Z ok  	github.com/twixlmedia/go-shared/twxgeocode	2.780s	coverage: 100.0% of statements
2020-03-04T13:39:44.8520197Z ok  	github.com/twixlmedia/go-shared/twxgravatar	0.003s	coverage: 100.0% of statements
2020-03-04T13:40:04.1469289Z ok  	github.com/twixlmedia/go-shared/twxgzip	14.815s	coverage: 100.0% of statements
2020-03-04T13:40:04.1470218Z ok  	github.com/twixlmedia/go-shared/twxhtml	0.014s	coverage: 15.2% of statements
2020-03-04T13:40:04.1470915Z go tool: no such tool "compile"
2020-03-04T13:40:04.1471400Z ok  	github.com/twixlmedia/go-shared/twxhttp	0.003s	coverage: 100.0% of statements
2020-03-04T13:40:04.1472197Z ok  	github.com/twixlmedia/go-shared/twximage	0.002s	coverage: 0.0% of statements [no tests to run]
2020-03-04T13:40:04.1472727Z ok  	github.com/twixlmedia/go-shared/twxjson	0.004s	coverage: 100.0% of statements
2020-03-04T13:40:04.1476895Z ok  	github.com/twixlmedia/go-shared/twxlog	0.460s	coverage: 100.0% of statements
2020-03-04T13:40:04.1477590Z ok  	github.com/twixlmedia/go-shared/twxmacapp	1.201s	coverage: 55.6% of statements
2020-03-04T13:40:04.1478015Z ok  	github.com/twixlmedia/go-shared/twxminify	0.009s	coverage: 100.0% of statements
2020-03-04T13:40:04.1478392Z ?   	github.com/twixlmedia/go-shared/twxmobileapp	[no test files]
2020-03-04T13:40:04.1478826Z ok  	github.com/twixlmedia/go-shared/twxmobileprovision	0.008s	coverage: 93.9% of statements
2020-03-04T13:40:04.1479231Z ok  	github.com/twixlmedia/go-shared/twxnatsort	0.004s	coverage: 94.1% of statements
2020-03-04T13:40:04.1479641Z ok  	github.com/twixlmedia/go-shared/twxplist	0.012s	coverage: 97.1% of statements
2020-03-04T13:40:04.1480050Z ok  	github.com/twixlmedia/go-shared/twxprof	0.005s	coverage: 100.0% of statements
2020-03-04T13:40:04.1480669Z ok  	github.com/twixlmedia/go-shared/twxprogressbar	0.004s	coverage: 100.0% of statements
2020-03-04T13:40:04.2165701Z ##[error]Process completed with exit code 2.
2020-03-04T13:40:04.2369112Z Post job cleanup.
2020-03-04T13:40:04.3638392Z [command]/usr/bin/git version
2020-03-04T13:40:04.3770040Z git version 2.25.1
2020-03-04T13:40:04.3797367Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2020-03-04T13:40:04.3831667Z http.https://github.com/.extraheader
2020-03-04T13:40:04.3842508Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2020-03-04T13:40:04.3924703Z Cleaning up orphan processes
2020-03-04T13:40:04.4260173Z Terminate orphan process: pid (7519) (twxpublication.test)

Add documentation about accepted formats for Go versions

I'm fairly new to GitHub actions, and to this action, but couldn't find documentation about accepted formats for Go versions.

Specifying Go-versions has historically been somewhat of a "hit/miss" in various tools, due to a combination of;

  • Go itself using non-standard versions (go prefix, e.g. go1.15.3)
  • Go itself omitting .0 on releases (two digits for go1.15, not go1.15.0, but patch releases do have three digits (go1.15.3))
  • Different conventions in different tools

Different conventions used in different tools / CI systems can make the selected version ambiguous;

  • 1.15 could either mean go1.15 (1.15.0) or "latest patch release of go1.15"

  • 1.15.x is accepted by some tools to get "latest patch release" of 1.15 (usually excluding pre-releases, such as go1.15beta1 or go1.15rc1)

  • Omitting quotes can lead to "surprising" results: I recall when Go 1.10 was released, many users who updated their CI configuration discovered they were now installing Go 1.1 (because 1.10 (without quotes) lead to YAML interpreting the version as a number)

  • Are versions like tip supported?

  • Travis's gimme (https://github.com/travis-ci/gimme) also has some variations;

    gimme --resolve 1.x
    1.15.3
    
    gimme --resolve 1.14.x
    1.14.10
    
    gimme --resolve 1.14.3
    1.14.3
    
    gimme --resolve 1.15
    1.15
    
    gimme --resolve tip
    tip
    
    gimme --resolve stable
    1.15.3
    
    gimme --resolve oldstable
    1.14.10

In short, it would be good to have a section to explain what version formats are accepted, and what their result is.

@bryanmacfarlane @thboop happy to contribute a pull-request (after I know what versions are accepted 😅)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.