os: [ "ubuntu" ]
go: [ "1.24.x", "1.25.x" ]
race: [ false ]
- use32bit: [ false ]
include:
- os: "ubuntu"
go: "1.25.x"
race: true
- - os: "ubuntu"
- go: "1.25.x"
- use32bit: true
- os: "windows"
go: "1.25.x"
race: false
env:
DEBUG: false # set this to true to export qlogs and save them as artifacts
TIMESCALE_FACTOR: 3
- name: "Integration (${{ matrix.os }}, Go ${{ matrix.go }}${{ matrix.race && ', race' || '' }}${{ matrix.use32bit && ', 32-bit' || '' }})"
+ name: "Integration (${{ matrix.os }}, Go ${{ matrix.go }}${{ matrix.race && ', race' || '' }})"
steps:
- uses: actions/checkout@v5
- uses: actions/setup-go@v6
- name: Enable race detector
if: ${{ matrix.race }}
run: echo "RACEFLAG= -race" >> $GITHUB_ENV
- - name: Enable 32-bit build
- if: ${{ matrix.use32bit }}
- run: echo "GOARCH=386" >> $GITHUB_ENV
- run: go version
- name: Run tools tests
run: go test ${{ env.RACEFLAG }} -v -timeout 30s -shuffle=on ./integrationtests/tools/... 2>&1 | go-junit-report -set-exit-code -iocopy -out report_tools.xml
if: ${{ always() && env.DEBUG == 'true' }}
uses: actions/upload-artifact@v4
with:
- name: qlogs-${{ matrix.os }}-go${{ matrix.go }}-race${{ matrix.race }}${{ matrix.use32bit && '-32bit' || '' }}
+ name: qlogs-${{ matrix.os }}-go${{ matrix.go }}-race${{ matrix.race }}
path: integrationtests/self/*.qlog
retention-days: 7
- name: Upload report to Codecov
- if: ${{ !cancelled() && !matrix.race && !matrix.use32bit }}
+ if: ${{ !cancelled() && !matrix.race }}
uses: codecov/test-results-action@v1
with:
name: Unit tests
go test -c -cover -tags root -o quic-go.test .
sudo ./quic-go.test -test.v -test.run "${TEST_NAMES%|}" -test.coverprofile coverage-root.txt 2>&1 | go-junit-report -set-exit-code -iocopy -package-name github.com/quic-go/quic-go -out report_root.xml
rm quic-go.test
- - name: Run tests (32 bit)
- if: ${{ matrix.os != 'macos' }} # can't run 32 bit tests on macOS
- env:
- TIMESCALE_FACTOR: 10
- GOARCH: 386
- run: go test -v -shuffle on ./...
- name: Run tests with race detector
if: ${{ matrix.os == 'ubuntu' }} # speed things up. Windows and OSX VMs are slow
env: