name: Run go tests on: - push - pull_request env: GOPATH: /go_path GOCACHE: /go_cache jobs: test: runs-on: ubuntu-latest timeout-minutes: 5 env: steps: - uses: actions/checkout@v4 - name: Set up Go uses: https://github.com/actions/setup-go@v4 with: go-version: 1.21 use-latest: true - name: Hash go.mod and go.sum uses: https://gitea.com/actions/go-hashfiles@v0.0.1 id: hash-go with: patterns: | go.mod go.sum - name: Cache go uses: actions/cache@v3 - name: Go mod download run: go mod download - name: Go mod verify run: go mod verify - name: Go mod tidy run: go mod tidy && git diff --exit-code - name: Check gofmt run: gofmt -s -w . && git diff --exit-code - name: Check go vet run: go vet ./... - name: Build run: go build -v ./... - name: Test run: go test -cover -coverprofile=/tmp/cov.out -v ./... - name: Make coverage report run: go tool cover -html=/tmp/cov.out -o /tmp/cov.html - name: Publish coverage report uses: actions/upload-artifact@v3 with: name: coverage-report path: /tmp/cov.html