.github/workflows/unit.yml #212
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: [push, pull_request] | |
jobs: | |
unit: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ "ubuntu", "windows", "macos" ] | |
go: [ "1.21.x", "1.22.x" ] | |
runs-on: ${{ fromJSON(vars[format('UNIT_RUNNER_{0}', matrix.os)] || format('"{0}-latest"', matrix.os)) }} | |
name: Unit tests (${{ matrix.os}}, Go ${{ matrix.go }}) | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go }} | |
- run: go version | |
- name: Run tests | |
env: | |
TIMESCALE_FACTOR: 10 | |
run: go run github.com/onsi/ginkgo/v2/ginkgo -r -v -cover -randomize-all -randomize-suites -trace -skip-package integrationtests | |
- name: Run tests as root | |
if: ${{ matrix.os == 'ubuntu' }} | |
env: | |
TIMESCALE_FACTOR: 10 | |
FILE: sys_conn_helper_linux_test.go | |
run: | | |
test -f $FILE # make sure the file actually exists | |
go run github.com/onsi/ginkgo/v2/ginkgo build -cover -tags root . | |
sudo ./quic-go.test -ginkgo.v -ginkgo.trace -ginkgo.randomize-all -ginkgo.focus-file=$FILE -test.coverprofile coverage-root.txt | |
rm quic-go.test | |
- name: Run tests (32 bit) | |
if: ${{ matrix.os != 'macos' }} # can't run 32 bit tests on OSX. | |
env: | |
TIMESCALE_FACTOR: 10 | |
GOARCH: 386 | |
run: go run github.com/onsi/ginkgo/v2/ginkgo -r -v -cover -coverprofile coverage.txt -output-dir . -randomize-all -randomize-suites -trace -skip-package integrationtests | |
- name: Run tests with race detector | |
if: ${{ matrix.os == 'ubuntu' }} # speed things up. Windows and OSX VMs are slow | |
env: | |
TIMESCALE_FACTOR: 20 | |
run: go run github.com/onsi/ginkgo/v2/ginkgo -r -v -race -randomize-all -randomize-suites -trace -skip-package integrationtests | |
- name: Run benchmark tests | |
run: go test -v -run=^$ -benchtime 0.5s -bench=. $(go list ./... | grep -v integrationtests/self) | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
files: coverage.txt,coverage-root.txt | |
env_vars: OS=${{ matrix.os }}, GO=${{ matrix.go }} | |
token: ${{ secrets.CODECOV_TOKEN }} |