# # goodput,crosstraffic are not run on purpose, those tests are intended to bandwidth measurement, we currently do not want to use GitHub runners for that # name: QUIC Interop LibreSSL on: workflow_dispatch: schedule: - cron: "0 0 * * 2" jobs: build: runs-on: ubuntu-24.04 permissions: contents: read packages: write steps: - uses: actions/checkout@v4 - name: Log in to the Container registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build and push Docker image id: push uses: docker/build-push-action@v5 with: context: https://github.com/haproxytech/haproxy-qns.git push: true build-args: | SSLLIB: LibreSSL tags: ghcr.io/${{ github.repository }}:libressl run: needs: build strategy: matrix: suite: [ { client: picoquic, tests: "handshake,transfer,longrtt,chacha20,multiplexing,retry,http3,blackhole,amplificationlimit,handshakeloss,transferloss,handshakecorruption,transfercorruption,v2" }, { client: quic-go, tests: "handshake,transfer,longrtt,chacha20,multiplexing,retry,http3,blackhole,amplificationlimit,transferloss,transfercorruption,v2" } ] fail-fast: false name: ${{ matrix.suite.client }} runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - name: Log in to the Container registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Install tshark run: | sudo apt-get update sudo apt-get -y install tshark - name: Pull image run: | docker pull ghcr.io/${{ github.repository }}:libressl - name: Run run: | git clone https://github.com/quic-interop/quic-interop-runner cd quic-interop-runner pip install -r requirements.txt --break-system-packages python run.py -j result.json -l logs -r haproxy=ghcr.io/${{ github.repository }}:libressl -t ${{ matrix.suite.tests }} -c ${{ matrix.suite.client }} -s haproxy - name: Delete succeeded logs if: failure() run: | cd quic-interop-runner/logs/haproxy_${{ matrix.suite.client }} cat ../../result.json | jq -r '.results[][] | select(.result=="succeeded") | .name' | xargs rm -rf - name: Logs upload if: failure() uses: actions/upload-artifact@v4 with: name: logs-${{ matrix.suite.client }} path: quic-interop-runner/logs/ retention-days: 6