name: Test on: # Manual trigger workflow_dispatch: push: branches: [main] pull_request: permissions: contents: read jobs: lint: runs-on: ubuntu-latest steps: - name: Check out code uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up Go uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0 with: go-version: "^1.26" - name: Check formatting run: | unformatted=$(gofmt -l .) if [ -n "$unformatted" ]; then echo "The following files are not properly formatted:" echo "$unformatted" exit 1 fi echo "All Go files are properly formatted" - name: Run Go vet run: go vet ./... - name: Run staticcheck uses: dominikh/staticcheck-action@9716614d4101e79b4340dd97b10e54d68234e431 # v1.4.1 with: install-go: false version: "v0.6.1" test: runs-on: ubuntu-latest strategy: matrix: go: ["1.25", "1.26"] steps: - name: Check out code uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up Go uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0 with: go-version: ${{ matrix.go }} - name: Test run: go test -v ./... race-test: runs-on: ubuntu-latest steps: - name: Check out code uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up Go uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0 with: go-version: "1.26" - name: Test with -race run: go test -v -race ./...