name: build on: push: branches: - main pull_request: types: [opened, synchronize, reopened] jobs: build: runs-on: ubuntu-latest strategy: fail-fast: false matrix: go: ["1.18.x", "1.19.x", "1.20.x"] steps: - name: Checkout uses: actions/checkout@v3 - name: Setup Go uses: actions/setup-go@v4 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 ./...) ./... | tee output.json | tparse -follow -notests || true tparse -format markdown -file output.json -all > $GITHUB_STEP_SUMMARY go build ./...