name: Go tests on: [push, pull_request] permissions: contents: read jobs: test: name: Test strategy: fail-fast: false matrix: go: [1.16.x, 1.17.x, 1.18.x] os: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{ matrix.os }} steps: - name: Install Go ${{ matrix.go }} uses: actions/setup-go@v2 with: go-version: ${{ matrix.go }} - name: Checkout repository uses: actions/checkout@v2 with: fetch-depth: 0 - name: Run tests run: go test -race ./... freebsd: name: Test (FreeBSD) runs-on: macos-10.15 steps: - name: Checkout repository uses: actions/checkout@v2 with: fetch-depth: 0 - name: Run tests # Unpinned Action allowed with read-only permissions. uses: vmactions/freebsd-vm@v0.1.5 with: prepare: | freebsd-version pkg install -y go go version run: go test -buildvcs=false -race ./... gotip: name: Test (Go tip) strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{ matrix.os }} steps: - name: Install Go tip (UNIX) if: runner.os != 'Windows' run: | git clone --filter=tree:0 https://go.googlesource.com/go $HOME/gotip cd $HOME/gotip/src && ./make.bash echo "$HOME/gotip/bin" >> $GITHUB_PATH - name: Install Go tip (Windows) if: runner.os == 'Windows' run: | git clone --filter=tree:0 https://go.googlesource.com/go $HOME/gotip cd $HOME/gotip/src && ./make.bat echo "$HOME/gotip/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - name: Checkout repository uses: actions/checkout@v2 with: fetch-depth: 0 - run: go version - name: Run tests run: go test -race ./...