name: Go on: [push, pull_request] jobs: test: name: Test strategy: matrix: os: [ "ubuntu-latest", "macos-latest" ] go-version: [ "1.13", "1.14", "1.15" ] runs-on: ${{ matrix.os }} steps: - name: setup Go ${{ matrix.go-version }} uses: actions/setup-go@v2 with: go-version: ${{ matrix.go-version }} - name: checkout uses: actions/checkout@v2 - uses: actions/cache@v2 with: path: | ~/go/pkg/mod ~/.cache/go-build ~/Library/Caches/go-build '%LocalAppData%\go-build' key: ${{ matrix.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ matrix.os }}-go- - name: simple test run: go test -v ./ -count=1 - name: test with GC pressure run: go test -v ./ -count=1 env: GOGC: 1 - name: test with race detector run: go test -v -race ./ -count=1 coverage: name: Coverage runs-on: ubuntu-latest steps: - name: setup Go uses: actions/setup-go@v2 with: go-version: 1.15 - name: checkout uses: actions/checkout@v2 - name: measure coverage run: go test -v -coverprofile=coverage.out ./ -count=1 - name: report coverage run: | bash <(curl -s https://codecov.io/bash)