From: Neil Horman Date: Mon, 17 Feb 2025 18:59:53 +0000 (-0500) Subject: Merge quic client and quic server interop CI X-Git-Tag: openssl-3.5.0-alpha1~158 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c55114f680a1b7a88ed2f502342780b913d55018;p=thirdparty%2Fopenssl.git Merge quic client and quic server interop CI Now that quic server is merged, we can merge the CI jobs that test the client and server interop tests Fixes openssl/project#1105 Reviewed-by: Tomas Mraz Reviewed-by: Tim Hudson (Merged from https://github.com/openssl/openssl/pull/26804) --- diff --git a/.github/workflows/build_quic_interop_container_server.yml b/.github/workflows/build_quic_interop_container_server.yml deleted file mode 100644 index 9ac03356d26..00000000000 --- a/.github/workflows/build_quic_interop_container_server.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: "Build openssl interop container from quic-server" - -on: - schedule: - - cron: '40 02 * * *' - workflow_dispatch: - -jobs: - update_quay_container: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - ref: feature/quic-server - - name: "log in to quay.io" - run: | - docker login -u openssl-ci+machine -p ${{ secrets.QUAY_IO_PASSWORD }} quay.io - - name: "Build container" - run: | - cd test/quic-openssl-docker/ - docker build -t quay.io/openssl-ci/openssl-quic-interop-server:latest --build-arg OPENSSL_URL=https://github.com/openssl/openssl --build-arg OPENSSL_BRANCH=feature/quic-server . - - name: "Push to quay" - run: | - docker push quay.io/openssl-ci/openssl-quic-interop-server:latest - diff --git a/.github/workflows/run_quic_interop.yml b/.github/workflows/run_quic_interop.yml index 7459e8a8e3b..1f04ec4b863 100644 --- a/.github/workflows/run_quic_interop.yml +++ b/.github/workflows/run_quic_interop.yml @@ -7,13 +7,13 @@ on: workflow_dispatch: jobs: - run_quic_interop: + run_quic_interop_openssl_client: strategy: matrix: - tests: [http3, transfer, handshake, retry, chacha20, resumption, amplificationlimit, ipv6] + tests: [http3, transfer, handshake, retry, chacha20, resumption, multiplexing, ipv6] servers: [quic-go, ngtcp2, mvfst, quiche, nginx, msquic, haproxy] fail-fast: false - runs-on: ubuntu-latest + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: @@ -29,11 +29,40 @@ jobs: run: | jq '.openssl = { image: "quay.io/openssl-ci/openssl-quic-interop" , url: "https://github.com/openssl/openssl" - , role: "client" + , role: "both" }' ./implementations.json > ./implementations.tmp mv ./implementations.tmp implementations.json - - name: "run interop" + - name: "run interop with openssl client" run: | - python3 ./run.py -c openssl -t ${{ matrix.tests }} -s ${{ matrix.servers }} --log-dir ./logs -d - - + 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] + 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 dependencies + run: | + pip install -r requirements.txt + sudo add-apt-repository ppa:wireshark-dev/stable + sudo apt-get update + sudo apt-get install -y tshark + - name: Patch implementations file + run: | + jq '.openssl = { image: "quay.io/openssl-ci/openssl-quic-interop" + , url: "https://github.com/openssl/openssl" + , role: "both" + }' ./implementations.json > ./implementations.tmp + mv ./implementations.tmp implementations.json + - name: "run interop with openssl server" + run: | + python3 ./run.py -s openssl -t ${{ matrix.tests }} -c ${{ matrix.clients }} --log-dir ./logs-server -d diff --git a/.github/workflows/run_quic_interop_server.yml b/.github/workflows/run_quic_interop_server.yml deleted file mode 100644 index fc69cbbdb0a..00000000000 --- a/.github/workflows/run_quic_interop_server.yml +++ /dev/null @@ -1,68 +0,0 @@ -name: "Run openssl quic interop testing" - -on: - workflow_run: - workflows: ["Build openssl interop container from quic-server"] - types: [completed] - workflow_dispatch: - -jobs: - run_quic_interop_openssl_client: - strategy: - matrix: - tests: [http3, transfer, handshake, retry, chacha20, resumption, multiplexing] - servers: [quic-go, ngtcp2, mvfst, quiche, nginx, msquic, haproxy] - fail-fast: false - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - repository: 'quic-interop/quic-interop-runner' - fetch-depth: 0 - - name: Install dependencies - run: | - pip install -r requirements.txt - sudo add-apt-repository ppa:wireshark-dev/stable - sudo apt-get update - sudo apt-get install -y tshark - - name: Patch implementations file - run: | - jq '.openssl = { image: "quay.io/openssl-ci/openssl-quic-interop-server" - , url: "https://github.com/openssl/openssl" - , role: "both" - }' ./implementations.json > ./implementations.tmp - mv ./implementations.tmp implementations.json - - 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] - clients: [quic-go, ngtcp2, mvfst, quiche, 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 dependencies - run: | - pip install -r requirements.txt - sudo add-apt-repository ppa:wireshark-dev/stable - sudo apt-get update - sudo apt-get install -y tshark - - name: Patch implementations file - run: | - jq '.openssl = { image: "quay.io/openssl-ci/openssl-quic-interop-server" - , url: "https://github.com/openssl/openssl" - , role: "both" - }' ./implementations.json > ./implementations.tmp - mv ./implementations.tmp implementations.json - - name: "run interop with openssl server" - run: | - python3 ./run.py -s openssl -t ${{ matrix.tests }} -c ${{ matrix.clients }} --log-dir ./logs-server -d