Skip to content

Commit c60b44a

Browse files
committed
Reduce the matrix fanout of interop runner
Recent test additions have increased the number of jobs spawned by the interop runner test which exceeds the maximum allowed. This occurs because the matrix expands to: 7 server elements 6 client elements 7 tests 2 test steps (client interop and server interop Because of how github ci does matrix expansion, this results in 2 * 7 * 7 * 6 = 588 But most of those are invalid because each of the 2 steps only considers either the client or server elements, and so get rerun multiple times Alter the steps to be individual jobs, each with their own reduced matrix to only run each relevant test once, limiting our job count to at most 49 jobs.
1 parent 0958f5a commit c60b44a

File tree

1 file changed

+26
-3
lines changed

1 file changed

+26
-3
lines changed

.github/workflows/run_quic_interop_server.yml

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,11 @@ on:
77
workflow_dispatch:
88

99
jobs:
10-
run_quic_interop:
10+
run_quic_interop_openssl_client:
1111
strategy:
1212
matrix:
1313
tests: [http3, transfer, handshake, retry, chacha20, resumption, amplificationlimit]
1414
servers: [quic-go, ngtcp2, mvfst, quiche, nginx, msquic, haproxy]
15-
clients: [quic-go, ngtcp2, mvfst, quiche, msquic, openssl]
1615
fail-fast: false
1716
runs-on: ubuntu-latest
1817
steps:
@@ -36,7 +35,31 @@ jobs:
3635
- name: "run interop with openssl client"
3736
run: |
3837
python3 ./run.py -c openssl -t ${{ matrix.tests }} -s ${{ matrix.servers }} --log-dir ./logs-client -d
38+
run_quic_interop_openssl_server:
39+
strategy:
40+
matrix:
41+
tests: [http3, transfer, handshake, retry, chacha20, resumption, amplificationlimit]
42+
clients: [quic-go, ngtcp2, mvfst, quiche, msquic, openssl]
43+
fail-fast: false
44+
runs-on: ubuntu-latest
45+
steps:
46+
- uses: actions/checkout@v4
47+
with:
48+
repository: 'quic-interop/quic-interop-runner'
49+
fetch-depth: 0
50+
- name: Install dependencies
51+
run: |
52+
pip install -r requirements.txt
53+
sudo add-apt-repository ppa:wireshark-dev/stable
54+
sudo apt-get update
55+
sudo apt-get install -y tshark
56+
- name: Patch implementations file
57+
run: |
58+
jq '.openssl = { image: "quay.io/openssl-ci/openssl-quic-interop-server"
59+
, url: "https://github.com/openssl/openssl"
60+
, role: "both"
61+
}' ./implementations.json > ./implementations.tmp
62+
mv ./implementations.tmp implementations.json
3963
- name: "run interop with openssl server"
4064
run: |
4165
python3 ./run.py -s openssl -t ${{ matrix.tests }} -c ${{ matrix.clients }} --log-dir ./logs-server -d
42-

0 commit comments

Comments
 (0)