1111
1212
1313jobs :
14- build :
14+ combined- build-and-run :
1515 runs-on : ubuntu-24.04
1616 if : ${{ github.repository_owner == 'haproxy' || github.event_name == 'workflow_dispatch' }}
1717 permissions :
@@ -21,84 +21,44 @@ jobs:
2121 steps :
2222 - uses : actions/checkout@v5
2323
24- - name : Log in to the Container registry
25- uses : docker/login-action@v3
26- with :
27- registry : ghcr.io
28- username : ${{ github.actor }}
29- password : ${{ secrets.GITHUB_TOKEN }}
30-
31- - name : Build and push Docker image
24+ - name : Build Docker image
3225 id : push
33- uses : docker/build-push-action@v5
26+ uses : docker/build-push-action@v6
3427 with :
3528 context : https://github.com/haproxytech/haproxy-qns.git
36- push : true
29+ platforms : linux/amd64
3730 build-args : |
3831 SSLLIB=AWS-LC
39- tags : ghcr.io/${{ github.repository }}:aws-lc
40-
41- - name : Cleanup registry
42- uses : actions/delete-package-versions@v5
43- with :
44- owner : ${{ github.repository_owner }}
45- package-name : ' haproxy'
46- package-type : container
47- min-versions-to-keep : 1
48- delete-only-untagged-versions : ' true'
49-
50- run :
51- needs : build
52- strategy :
53- matrix :
54- suite : [
55- { client: chrome, tests: "http3" },
56- { client: picoquic, tests: "handshake,transfer,longrtt,chacha20,multiplexing,retry,resumption,zerortt,http3,blackhole,keyupdate,ecn,amplificationlimit,handshakeloss,transferloss,handshakecorruption,transfercorruption,ipv6,v2" },
57- { client: quic-go, tests: "handshake,transfer,longrtt,chacha20,multiplexing,retry,resumption,zerortt,http3,blackhole,keyupdate,ecn,amplificationlimit,handshakeloss,transferloss,handshakecorruption,transfercorruption,ipv6,v2" },
58- { client: ngtcp2, tests: "handshake,transfer,longrtt,chacha20,multiplexing,retry,resumption,zerortt,http3,blackhole,keyupdate,ecn,amplificationlimit,handshakeloss,transferloss,handshakecorruption,transfercorruption,ipv6,v2" }
59- ]
60- fail-fast : false
61-
62- name : ${{ matrix.suite.client }}
63- runs-on : ubuntu-24.04
64- if : ${{ github.repository_owner == 'haproxy' || github.event_name == 'workflow_dispatch' }}
65-
66- steps :
67- - uses : actions/checkout@v5
68-
69- - name : Log in to the Container registry
70- uses : docker/login-action@v3
71- with :
72- registry : ghcr.io
73- username : ${{ github.actor }}
74- password : ${{ secrets.GITHUB_TOKEN }}
32+ tags : local:aws-lc
7533
7634 - name : Install tshark
7735 run : |
7836 sudo apt-get update
7937 sudo apt-get -y install tshark
8038
81- - name : Pull image
82- run : |
83- docker pull ghcr.io/${{ github.repository }}:aws-lc
84-
8539 - name : Run
8640 run : |
8741 git clone https://github.com/quic-interop/quic-interop-runner
8842 cd quic-interop-runner
8943 pip install -r requirements.txt --break-system-packages
90- 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
44+ python run.py -j result.json -l logs-chrome -r haproxy=local:aws-lc -t "http3" -c chrome -s haproxy
45+ 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
46+ 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
47+ 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
9148
9249 - name : Delete succeeded logs
9350 if : failure()
9451 run : |
95- cd quic-interop-runner/logs/haproxy_${{ matrix.suite.client }}
96- cat ../../result.json | jq -r '.results[][] | select(.result=="succeeded") | .name' | xargs rm -rf
52+ for client in chrome picoquic quic-go ngtcp2; do
53+ pushd quic-interop-runner/logs-${client}/haproxy_${client}
54+ cat ../../result.json | jq -r '.results[][] | select(.result=="succeeded") | .name' | xargs rm -rf
55+ popd
56+ done
9757
9858 - name : Logs upload
9959 if : failure()
10060 uses : actions/upload-artifact@v4
10161 with :
102- name : logs-${{ matrix.suite.client }}
103- path : quic-interop-runner/logs/
62+ name : logs
63+ path : quic-interop-runner/logs* /
10464 retention-days : 6
0 commit comments