Merged, thanks.

On Tue, Feb 17, 2026 at 10:41:07PM +0100, Ilia Shipitsin wrote:
> 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
> -- 
> 2.46.0.windows.1
> 
> 
> 

-- 
William Lallemand


Reply via email to