name: test on: pull_request: paths-ignore: - '*.md' - '.examples/**' push: branches: - master paths-ignore: - '*.md' - '.github/**' - '.examples/**' jobs: test: runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/setup-go@v5 with: go-version: 1.21 - uses: actions/checkout@v4 - name: Build binary to make sure it works run: go build - 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 ./... -race -coverprofile=coverage.txt -covermode=atomic - name: Codecov uses: codecov/codecov-action@v4.4.0 with: files: ./coverage.txt token: ${{ secrets.CODECOV_TOKEN }}