on: [push, pull_request] name: test jobs: test: strategy: fail-fast: false matrix: go-version: [1.19.x, 1.20.x] platform: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{ matrix.platform }} steps: - name: Install Go uses: actions/setup-go@v4 with: go-version: ${{ matrix.go-version }} - name: Checkout code uses: actions/checkout@v3 - name: Run lints uses: golangci/golangci-lint-action@v3 with: version: latest if: "matrix.platform == 'ubuntu-latest'" # gofmt linter fails on Windows for CRLF problems - name: Run tests run: go test -v ./... -covermode=count -coverprofile=coverage.out -coverpkg=./... - name: Send coverage if: "matrix.platform == 'ubuntu-latest'" env: COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | GO111MODULE=off go get github.com/mattn/goveralls $(go env GOPATH)/bin/goveralls -coverprofile=coverage.out -service=github