name: build on: push: branches: - main pull_request: types: [opened, synchronize, reopened] jobs: check: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - uses: reviewdog/action-staticcheck@v1 with: github_token: ${{ secrets.github_token }} reporter: github-pr-review filter_mode: nofilter fail_on_error: true build: runs-on: ubuntu-latest strategy: fail-fast: false matrix: go: ["1.18", "1.19", "1.20"] steps: - name: Checkout uses: actions/checkout@v3 - name: Setup Go uses: actions/setup-go@v3 with: go-version: "${{ matrix.go }}" check-latest: true cache: true - name: Check Go code formatting run: | if [ "$(gofmt -s -l . | wc -l)" -gt 0 ]; then gofmt -s -l . echo "Please format Go code by running: go fmt ./..." exit 1 fi - name: Build run: | go install github.com/mfridman/tparse@latest go vet ./... go test -v -race -count=1 -json -coverpkg=$(go list ./...) ./... | tparse -follow -notests go build ./...