name: test on: push: branches: - main pull_request: jobs: test: strategy: matrix: go-version: [ 1.16.x, 1.17.x ] runs-on: ubuntu-latest steps: - name: Install Go uses: actions/setup-go@v2 with: go-version: ${{ matrix.go-version }} - name: Checkout code uses: actions/checkout@v2 - name: Go cache uses: actions/cache@v2 with: path: | ~/go/pkg/mod ~/.cache/go-build key: ${{ runner.os }}-go-cache-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go-cache - name: Run gofmt run: gofmt -d -e . 2>&1 | tee outfile && test -z "$(cat outfile)" && rm outfile - name: Run staticcheck if: matrix.go-version == '1.17.x' run: | bin/staticcheck_linux_amd64_2021.1.2 github.com/cucumber/godog bin/staticcheck_linux_amd64_2021.1.2 github.com/cucumber/godog/cmd/godog # Disable for now because of failing checks # TODO: Add back in when fixes are made # bin/staticcheck_linux_amd64_2021.1.2 ./... - name: Run go vet run: | go vet ./... cd _examples && go vet ./... && cd .. - name: Run go test run: | go test -v -race -coverprofile=coverage.txt -covermode=atomic ./... cd _examples && go test -v -race ./... && cd .. - name: Run godog run: | go install ./cmd/godog godog -f progress --strict - name: Report on code coverage if: matrix.go-version == '1.17.x' uses: codecov/codecov-action@v1 with: file: ./coverage.txt