From dfe1de4335f12d8ce436b906b2b6cddfcb8274c9 Mon Sep 17 00:00:00 2001 From: Ilia Shipitsin Date: Tue, 17 Feb 2026 22:41:07 +0100 Subject: [PATCH] CI: do not use ghcr.io for Quic Interop workflows due to some (yet unknown) changes in ghcr.io we are not able to pull images from it anymore. Lets temporarily switch to "local only" images storage. no functional change --- .github/workflows/quic-interop-aws-lc.yml | 72 +++++---------------- .github/workflows/quic-interop-libressl.yml | 68 ++++--------------- 2 files changed, 30 insertions(+), 110 deletions(-) diff --git a/.github/workflows/quic-interop-aws-lc.yml b/.github/workflows/quic-interop-aws-lc.yml index 27fff66c2..17d586b5a 100644 --- a/.github/workflows/quic-interop-aws-lc.yml +++ b/.github/workflows/quic-interop-aws-lc.yml @@ -11,7 +11,7 @@ on: jobs: - build: + combined-build-and-run: runs-on: ubuntu-24.04 if: ${{ github.repository_owner == 'haproxy' || github.event_name == 'workflow_dispatch' }} permissions: @@ -21,84 +21,44 @@ jobs: steps: - uses: actions/checkout@v5 - - 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 + - name: Build Docker image id: push - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: https://github.com/haproxytech/haproxy-qns.git - push: true + platforms: linux/amd64 build-args: | SSLLIB=AWS-LC - tags: ghcr.io/${{ github.repository }}:aws-lc - - - name: Cleanup registry - uses: actions/delete-package-versions@v5 - with: - owner: ${{ github.repository_owner }} - package-name: 'haproxy' - package-type: container - min-versions-to-keep: 1 - delete-only-untagged-versions: 'true' - - run: - needs: build - strategy: - matrix: - suite: [ - { client: chrome, tests: "http3" }, - { client: picoquic, tests: "handshake,transfer,longrtt,chacha20,multiplexing,retry,resumption,zerortt,http3,blackhole,keyupdate,ecn,amplificationlimit,handshakeloss,transferloss,handshakecorruption,transfercorruption,ipv6,v2" }, - { client: quic-go, tests: "handshake,transfer,longrtt,chacha20,multiplexing,retry,resumption,zerortt,http3,blackhole,keyupdate,ecn,amplificationlimit,handshakeloss,transferloss,handshakecorruption,transfercorruption,ipv6,v2" }, - { client: ngtcp2, tests: "handshake,transfer,longrtt,chacha20,multiplexing,retry,resumption,zerortt,http3,blackhole,keyupdate,ecn,amplificationlimit,handshakeloss,transferloss,handshakecorruption,transfercorruption,ipv6,v2" } - ] - fail-fast: false - - name: ${{ matrix.suite.client }} - runs-on: ubuntu-24.04 - if: ${{ github.repository_owner == 'haproxy' || github.event_name == 'workflow_dispatch' }} - - steps: - - uses: actions/checkout@v5 - - - name: Log in to the Container registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} + tags: local:aws-lc - name: Install tshark run: | sudo apt-get update sudo apt-get -y install tshark - - name: Pull image - run: | - docker pull ghcr.io/${{ github.repository }}:aws-lc - - 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 }}:aws-lc -t ${{ matrix.suite.tests }} -c ${{ matrix.suite.client }} -s haproxy + python run.py -j result.json -l logs-chrome -r haproxy=local:aws-lc -t "http3" -c chrome -s haproxy + python run.py -j result.json -l logs-picoquic -r haproxy=local:aws-lc -t "handshake,transfer,longrtt,chacha20,multiplexing,retry,resumption,zerortt,http3,blackhole,keyupdate,ecn,amplificationlimit,handshakeloss,transferloss,handshakecorruption,transfercorruption,ipv6,v2" -c picoquic -s haproxy + python run.py -j result.json -l logs-quic-go -r haproxy=local:aws-lc -t "handshake,transfer,longrtt,chacha20,multiplexing,retry,resumption,zerortt,http3,blackhole,keyupdate,ecn,amplificationlimit,handshakeloss,transferloss,handshakecorruption,transfercorruption,ipv6,v2" -c quic-go -s haproxy + python run.py -j result.json -l logs-ngtcp2 -r haproxy=local:aws-lc -t "handshake,transfer,longrtt,chacha20,multiplexing,retry,resumption,zerortt,http3,blackhole,keyupdate,ecn,amplificationlimit,handshakeloss,transferloss,handshakecorruption,transfercorruption,ipv6,v2" -c ngtcp2 -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 + for client in chrome picoquic quic-go ngtcp2; do + pushd quic-interop-runner/logs-${client}/haproxy_${client} + cat ../../result.json | jq -r '.results[][] | select(.result=="succeeded") | .name' | xargs rm -rf + popd + done - name: Logs upload if: failure() uses: actions/upload-artifact@v4 with: - name: logs-${{ matrix.suite.client }} - path: quic-interop-runner/logs/ + name: logs + path: quic-interop-runner/logs*/ retention-days: 6 diff --git a/.github/workflows/quic-interop-libressl.yml b/.github/workflows/quic-interop-libressl.yml index 71fa81f62..14b724e14 100644 --- a/.github/workflows/quic-interop-libressl.yml +++ b/.github/workflows/quic-interop-libressl.yml @@ -11,7 +11,7 @@ on: jobs: - build: + combined-build-and-run: runs-on: ubuntu-24.04 if: ${{ github.repository_owner == 'haproxy' || github.event_name == 'workflow_dispatch' }} permissions: @@ -21,82 +21,42 @@ jobs: steps: - uses: actions/checkout@v5 - - 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 + - name: Build Docker image id: push - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: https://github.com/haproxytech/haproxy-qns.git - push: true + platforms: linux/amd64 build-args: | SSLLIB=LibreSSL - tags: ghcr.io/${{ github.repository }}:libressl - - - name: Cleanup registry - uses: actions/delete-package-versions@v5 - with: - owner: ${{ github.repository_owner }} - package-name: 'haproxy' - package-type: container - min-versions-to-keep: 1 - delete-only-untagged-versions: 'true' - - 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 - if: ${{ github.repository_owner == 'haproxy' || github.event_name == 'workflow_dispatch' }} - - steps: - - uses: actions/checkout@v5 - - - name: Log in to the Container registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} + tags: local:libressl - 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 + python run.py -j result.json -l logs-picoquic -r haproxy=local:libressl -t "handshake,transfer,longrtt,chacha20,multiplexing,retry,http3,blackhole,amplificationlimit,handshakeloss,transferloss,handshakecorruption,transfercorruption,v2" -c picoquic -s haproxy + python run.py -j result.json -l logs-quic-go -r haproxy=local:libressl -t "handshake,transfer,longrtt,chacha20,multiplexing,retry,http3,blackhole,amplificationlimit,transferloss,transfercorruption,v2" -c quic-go -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 + for client in picoquic quic-go; do + pushd quic-interop-runner/logs-${client}/haproxy_${client} + cat ../../result.json | jq -r '.results[][] | select(.result=="succeeded") | .name' | xargs rm -rf + popd + done - name: Logs upload if: failure() uses: actions/upload-artifact@v4 with: - name: logs-${{ matrix.suite.client }} - path: quic-interop-runner/logs/ + name: logs + path: quic-interop-runner/logs*/ retention-days: 6