name: build on: pull_request: paths-ignore: - '*.md' push: branches: - master paths-ignore: - '*.md' jobs: build: name: Build runs-on: ubuntu-latest timeout-minutes: 5 steps: - name: Set up Go uses: actions/setup-go@v3 with: go-version: 1.18 - name: Check out code into the Go module directory uses: actions/checkout@v2 - name: Build binary to make sure it works run: go build -mod vendor - name: Test # We're using "sudo" because one of the tests leverages ping, which requires super-user privileges. # As for the 'env "PATH=$PATH" "GOROOT=$GOROOT"', we need it to use the same "go" executable that # was configured by the "Set up Go" step (otherwise, it'd use sudo's "go" executable) run: sudo env "PATH=$PATH" "GOROOT=$GOROOT" go test -mod vendor ./... -race -coverprofile=coverage.txt -covermode=atomic - name: Codecov uses: codecov/codecov-action@v2.1.0 with: files: ./coverage.txt