github.com/MerlinKodo/quic-go@v0.39.2/.github/workflows/integration.yml (about) 1 on: [push, pull_request] 2 3 jobs: 4 integration: 5 strategy: 6 fail-fast: false 7 matrix: 8 os: [ "ubuntu" ] 9 go: [ "1.20.x", "1.21.x" ] 10 include: 11 - os: "windows" 12 go: "1.21.x" 13 - os: "macos" 14 go: "1.21.x" 15 runs-on: ${{ fromJSON(vars[format('INTEGRATION_RUNNER_{0}', matrix.os)] || format('"{0}-latest"', matrix.os)) }} 16 env: 17 DEBUG: false # set this to true to export qlogs and save them as artifacts 18 TIMESCALE_FACTOR: 3 19 name: Integration Tests (${{ matrix.os }}, Go ${{ matrix.go }}) 20 steps: 21 - uses: actions/checkout@v4 22 - uses: actions/setup-go@v4 23 with: 24 go-version: ${{ matrix.go }} 25 - run: go version 26 - name: set qlogger 27 if: env.DEBUG == 'true' 28 run: echo "QLOGFLAG= -qlog" >> $GITHUB_ENV 29 - name: Run other tests 30 run: | 31 go run github.com/onsi/ginkgo/v2/ginkgo -r -v -randomize-all -randomize-suites -trace -skip-package self,versionnegotiation integrationtests 32 go run github.com/onsi/ginkgo/v2/ginkgo -r -v -randomize-all -randomize-suites -trace integrationtests/versionnegotiation -- ${{ env.QLOGFLAG }} 33 - name: Run self tests, using QUIC v1 34 if: success() || failure() # run this step even if the previous one failed 35 run: go run github.com/onsi/ginkgo/v2/ginkgo -r -v -randomize-all -randomize-suites -trace integrationtests/self -- -version=1 ${{ env.QLOGFLAG }} 36 - name: Run self tests, using QUIC v2 37 if: success() || failure() # run this step even if the previous one failed 38 run: go run github.com/onsi/ginkgo/v2/ginkgo -r -v -randomize-all -randomize-suites -trace integrationtests/self -- -version=2 ${{ env.QLOGFLAG }} 39 - name: Run self tests, with GSO disabled 40 if: ${{ matrix.os == 'ubuntu' && (success() || failure()) }} # run this step even if the previous one failed 41 env: 42 QUIC_GO_DISABLE_GSO: true 43 run: go run github.com/onsi/ginkgo/v2/ginkgo -r -v -randomize-all -randomize-suites -trace integrationtests/self -- -version=1 ${{ env.QLOGFLAG }} 44 - name: Run self tests, with ECN disabled 45 if: ${{ matrix.os == 'ubuntu' && (success() || failure()) }} # run this step even if the previous one failed 46 env: 47 QUIC_GO_DISABLE_ECN: true 48 run: go run github.com/onsi/ginkgo/v2/ginkgo -r -v -randomize-all -randomize-suites -trace integrationtests/self -- -version=1 ${{ env.QLOGFLAG }} 49 - name: Run tests (32 bit) 50 if: ${{ matrix.os != 'macos' && (success() || failure()) }} # run this step even if the previous one failed 51 env: 52 GOARCH: 386 53 run: | 54 go run github.com/onsi/ginkgo/v2/ginkgo -r -v -randomize-all -randomize-suites -trace -skip-package self,versionnegotiation integrationtests 55 go run github.com/onsi/ginkgo/v2/ginkgo -r -v -randomize-all -randomize-suites -trace integrationtests/versionnegotiation -- ${{ env.QLOGFLAG }} 56 go run github.com/onsi/ginkgo/v2/ginkgo -r -v -randomize-all -randomize-suites -trace integrationtests/self -- ${{ env.QLOGFLAG }} 57 - name: save qlogs 58 if: ${{ always() && env.DEBUG == 'true' }} 59 uses: actions/upload-artifact@v2 60 with: 61 name: qlogs 62 path: integrationtests/self/*.qlog