Run openssl quic interop testing #383
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Run openssl quic interop testing" | |
on: | |
workflow_run: | |
workflows: ["Build openssl interop containers"] | |
types: [completed] | |
workflow_dispatch: | |
jobs: | |
run_quic_interop_openssl_client: | |
strategy: | |
matrix: | |
tests: [http3, transfer, handshake, retry, chacha20, resumption, multiplexing, ipv6] | |
servers: [quic-go, ngtcp2, mvfst, quiche, nginx, msquic, haproxy, msquic-openssl] | |
exclude: | |
- servers: msquic | |
tests: retry | |
- servers: msquic-openssl | |
tests: retry | |
fail-fast: false | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: 'quic-interop/quic-interop-runner' | |
fetch-depth: 0 | |
- name: Install python requirements | |
run: | | |
for i in {1..3}; do pip install -r requirements.txt && break; sleep 10; done | |
- name: Add tshark repo | |
run: | | |
for i in {1..3}; do sudo add-apt-repository ppa:wireshark-dev/stable && break; sleep 10; done | |
- name: Update apt repos | |
run: | | |
for i in {1..3}; do sudo apt-get update && break; sleep 10; done | |
- name: Install tshark | |
run: | | |
for i in {1..3}; do sudo apt-get install -y tshark && break; sleep 10; done | |
- name: Patch implementations file | |
run: | | |
jq '. + { | |
"openssl": { image: "quay.io/openssl-ci/openssl-quic-interop" | |
, url: "https://github.com/openssl/openssl" | |
, role: "both" | |
}, | |
"msquic-openssl": { image: "quay.io/openssl-ci/msquic-openssl" | |
, url: "https://github.com/microsoft/msquic" | |
, role: "both" | |
}}' ./implementations.json > ./implementations.tmp | |
mv ./implementations.tmp implementations.json | |
- name: "Update to docker-compose 2.36 and docker engine 28.1.1" | |
run: | | |
mkdir -p ~/.docker/cli-plugins/ | |
curl -SL https://github.com/docker/compose/releases/download/v2.36.0/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose | |
curl -SL "https://download.docker.com/linux/static/stable/x86_64/docker-28.1.1.tgz" -o ./docker-28.1.1.tgz | |
tar --strip-components=1 -xvzf docker-28.1.1.tgz | |
echo "$PWD" >> $GITHUB_PATH | |
chmod 755 ~/.docker/cli-plugins/docker-compose | |
chmod 755 ./docker | |
sudo mv ./dockerd $(which dockerd) | |
sudo systemctl restart docker | |
- name: Check docker version | |
run: | | |
docker version | |
docker compose version | |
- name: "Run interop with openssl client" | |
run: | | |
python3 ./run.py -c openssl -t ${{ matrix.tests }} -s ${{ matrix.servers }} --log-dir ./logs-client -d | |
run_quic_interop_openssl_server: | |
strategy: | |
matrix: | |
tests: [http3, transfer, handshake, retry, chacha20, resumption, amplificationlimit, ipv6] | |
clients: [quic-go, ngtcp2, mvfst, quiche, msquic, openssl, chrome, msquic-openssl] | |
exclude: | |
- clients: mvfst | |
tests: amplificationlimit | |
fail-fast: false | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: 'quic-interop/quic-interop-runner' | |
fetch-depth: 0 | |
- name: Install python requirements | |
run: | | |
for i in {1..3}; do pip install -r requirements.txt && break; sleep 10; done | |
- name: Add tshark repo | |
run: | | |
for i in {1..3}; do sudo add-apt-repository ppa:wireshark-dev/stable && break; done | |
- name: Update apt repos | |
run: | | |
for i in {1..3}; do sudo apt-get update && break; done | |
- name: Install tshark | |
run: | | |
for i in {1..3}; do sudo apt-get install -y tshark && break; done | |
- name: Patch implementations file | |
run: | | |
jq '. + { | |
"openssl": { image: "quay.io/openssl-ci/openssl-quic-interop" | |
, url: "https://github.com/openssl/openssl" | |
, role: "both" | |
}, | |
"msquic-openssl": { image: "quay.io/openssl-ci/msquic-openssl" | |
, url: "https://github.com/microsoft/msquic" | |
, role: "both" | |
}}' ./implementations.json > ./implementations.tmp | |
mv ./implementations.tmp implementations.json | |
- name: "Update to docker-compose 2.36 and docker engine 28.1.1" | |
run: | | |
mkdir -p ~/.docker/cli-plugins/ | |
curl -SL https://github.com/docker/compose/releases/download/v2.36.0/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose | |
curl -SL "https://download.docker.com/linux/static/stable/x86_64/docker-28.1.1.tgz" -o ./docker-28.1.1.tgz | |
tar --strip-components=1 -xvzf docker-28.1.1.tgz | |
echo "$PWD" >> $GITHUB_PATH | |
chmod 755 ~/.docker/cli-plugins/docker-compose | |
chmod 755 ./docker | |
sudo mv ./dockerd $(which dockerd) | |
sudo systemctl restart docker | |
- name: Check docker version | |
run: | | |
docker version | |
docker compose version | |
- name: "Run interop with openssl server" | |
run: | | |
python3 ./run.py -s openssl -t ${{ matrix.tests }} -c ${{ matrix.clients }} --log-dir ./logs-server -d |