github.com/TugasAkhir-QUIC/quic-go@v0.0.2-0.20240215011318-d20e25a9054c/.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.21.x", "1.22.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      defaults:
    17        run:
    18          shell: bash # by default Windows uses PowerShell, which uses a different syntax for setting environment variables
    19      env:
    20        DEBUG: false # set this to true to export qlogs and save them as artifacts
    21        TIMESCALE_FACTOR: 3
    22      name: Integration Tests (${{ matrix.os }}, Go ${{ matrix.go }})
    23      steps:
    24        - uses: actions/checkout@v4
    25        - uses: actions/setup-go@v5
    26          with:
    27            go-version: ${{ matrix.go }}
    28        - run: go version
    29        - name: set qlogger
    30          if: env.DEBUG == 'true'
    31          run: echo "QLOGFLAG= -qlog" >> $GITHUB_ENV
    32        - name: Run other tests
    33          run: |
    34            go run github.com/onsi/ginkgo/v2/ginkgo -r -v -randomize-all -randomize-suites -trace -skip-package self,versionnegotiation integrationtests
    35            go run github.com/onsi/ginkgo/v2/ginkgo -r -v -randomize-all -randomize-suites -trace integrationtests/versionnegotiation -- ${{ env.QLOGFLAG }}
    36        - name: Run self tests, using QUIC v1
    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=1 ${{ env.QLOGFLAG }}
    39        - name: Run self tests, using QUIC v2
    40          if: success() || failure() # run this step even if the previous one failed
    41          run: go run github.com/onsi/ginkgo/v2/ginkgo -r -v -randomize-all -randomize-suites -trace integrationtests/self -- -version=2 ${{ env.QLOGFLAG }}
    42        - name: Run self tests, with GSO disabled
    43          if: ${{ matrix.os == 'ubuntu' && (success() || failure()) }} # run this step even if the previous one failed
    44          env:
    45            QUIC_GO_DISABLE_GSO: true
    46          run: go run github.com/onsi/ginkgo/v2/ginkgo -r -v -randomize-all -randomize-suites -trace integrationtests/self -- -version=1 ${{ env.QLOGFLAG }}
    47        - name: Run self tests, with ECN disabled
    48          if: ${{ matrix.os == 'ubuntu' && (success() || failure()) }} # run this step even if the previous one failed
    49          env:
    50            QUIC_GO_DISABLE_ECN: true
    51          run: go run github.com/onsi/ginkgo/v2/ginkgo -r -v -randomize-all -randomize-suites -trace integrationtests/self -- -version=1 ${{ env.QLOGFLAG }}
    52        - name: Run tests (32 bit)
    53          if: ${{ matrix.os != 'macos' && (success() || failure()) }} # run this step even if the previous one failed
    54          env:
    55            GOARCH: 386
    56          run: |
    57            go run github.com/onsi/ginkgo/v2/ginkgo -r -v -randomize-all -randomize-suites -trace -skip-package self,versionnegotiation integrationtests
    58            go run github.com/onsi/ginkgo/v2/ginkgo -r -v -randomize-all -randomize-suites -trace integrationtests/versionnegotiation -- ${{ env.QLOGFLAG }}
    59            go run github.com/onsi/ginkgo/v2/ginkgo -r -v -randomize-all -randomize-suites -trace integrationtests/self -- ${{ env.QLOGFLAG }}
    60        - name: save qlogs
    61          if: ${{ always() && env.DEBUG == 'true' }}
    62          uses: actions/upload-artifact@v3
    63          with:
    64            name: qlogs-${{ matrix.os }}-go${{ matrix.go }}
    65            path: integrationtests/self/*.qlog
    66            retention-days: 7