on: [push, pull_request] name: tests jobs: test: strategy: matrix: go-version: [1.x, 1.16.x] platform: [ubuntu-latest] include: # only update test coverage stats with the most recent go version on linux - go-version: 1.x platform: ubuntu-latest update-coverage: true runs-on: ${{ matrix.platform }} permissions: # styfle/cancel-workflow-action needs to be able to cancel existing action workflows actions: write steps: - name: Cancel previous uses: styfle/cancel-workflow-action@89f242ee29e10c53a841bfe71cc0ce7b2f065abc #0.9.0 with: access_token: ${{ github.token }} - uses: actions/setup-go@v3 with: go-version: ${{ matrix.go-version }} - uses: actions/checkout@v3 - name: Cache go modules uses: actions/cache@v3 with: path: | ~/.cache/go-build ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: ${{ runner.os }}-go- - name: Run go test run: go test -v -race -coverprofile coverage.txt -covermode atomic ./... - name: Upload coverage to Codecov if: ${{ matrix.update-coverage }} uses: codecov/codecov-action@v3