on: [push, pull_request] name: tests env: GO111MODULE: on jobs: test: strategy: matrix: go-version: [1.12.x, 1.13.x] platform: [ubuntu-latest] runs-on: ${{ matrix.platform }} steps: - uses: actions/setup-go@v1 with: go-version: ${{ matrix.go-version }} - uses: actions/checkout@v1 - name: Cache go modules uses: actions/cache@preview with: path: ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- - name: Run go fmt run: diff -u <(echo -n) <(gofmt -d -s .) - name: Run go vet run: go vet ./... - name: Run go test run: go test -v -race -coverprofile=coverage.txt -covermode=atomic ./... - name: Upload coverage to Codecov env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} run: bash <(curl -s https://codecov.io/bash) # On Windows, just run the local tests. Don't bother with checking gofmt, go # vet, or uploading results to Codecov test-windows: strategy: matrix: go-version: [1.12.x, 1.13.x] platform: [windows-latest] runs-on: ${{ matrix.platform }} steps: - uses: actions/setup-go@v1 with: go-version: ${{ matrix.go-version }} - uses: actions/checkout@v1 - name: Cache go modules uses: actions/cache@preview with: path: ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**\go.sum') }} restore-keys: | ${{ runner.os }}-go- - run: go test ./...