name: Go on: [push, pull_request] jobs: build: name: Build on limited environment runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@v2 - name: build run: docker-compose run go-json test: name: Test strategy: matrix: os: [ "ubuntu-latest", "macos-latest", "windows-latest" ] go-version: [ "1.14", "1.15", "1.16" ] 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 - 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 bench: name: Benchmark runs-on: ubuntu-latest steps: - name: setup Go uses: actions/setup-go@v2 with: go-version: 1.16 - name: checkout uses: actions/checkout@v2 - name: run benchmark run: cd benchmarks && go test -bench . coverage: name: Coverage runs-on: ubuntu-latest steps: - name: setup Go uses: actions/setup-go@v2 with: go-version: 1.16 - name: checkout uses: actions/checkout@v2 - name: measure coverage run: make cover - name: report coverage run: | bash <(curl -s https://codecov.io/bash)