]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
quic-interop-ci: Fix failing CI
authorNorbert Pocs <norbertp@openssl.org>
Wed, 21 May 2025 18:02:57 +0000 (20:02 +0200)
committerTomas Mraz <tomas@openssl.org>
Thu, 22 May 2025 09:09:54 +0000 (11:09 +0200)
The issue was a flaky "impossible to reach server" in the CI.

The issue was caused by introduction of indeterminism to docker
networking (docker engine v28.0) and docker compose is affected by that
since v2.33.1.

Using constant network interface names solves the issue. The
"interface_name" was introduced in docker compose v2.36.0.

Resolves: https://github.com/openssl/project/issues/1182

Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27682)

.github/workflows/run_quic_interop.yml

index 84988729513d80488753726f61906566c28b6411..2e9c39753deac7ca5013a7b91147af1e360b90d2 100644 (file)
@@ -41,6 +41,20 @@ jobs:
                          , role: "both"
                          }' ./implementations.json > ./implementations.tmp
           mv ./implementations.tmp implementations.json
+      - name: "Update to docker-compose 2.36"
+        run: |
+          curl -SL https://github.com/docker/compose/releases/download/v2.36.0/docker-compose-linux-x86_64 -o ./docker-compose
+          echo "$PWD" >> $GITHUB_PATH
+          chmod 755 ./docker-compose
+      - name: Check docker compose version
+        run: |
+          docker-compose --version
+      - name: Patch Docker compose file
+        run: |
+          yq -i '.services.sim.networks.leftnet += {"interface_name" : "eth0"}
+                 | .services.sim.networks.rightnet += {"interface_name" : "eth1"}
+                 | .services.server.networks.rightnet += {"interface_name" : "eth0"}
+                 | .services.client.networks.leftnet += {"interface_name" : "eth0"}' docker-compose.yml
       - name: "run interop with openssl client"
         run: |
           python3 ./run.py -c openssl -t ${{ matrix.tests }} -s ${{ matrix.servers }} --log-dir ./logs-client -d
@@ -78,6 +92,20 @@ jobs:
                          , role: "both"
                          }' ./implementations.json > ./implementations.tmp
           mv ./implementations.tmp implementations.json
+      - name: "Update to docker-compose 2.36"
+        run: |
+          curl -SL https://github.com/docker/compose/releases/download/v2.36.0/docker-compose-linux-x86_64 -o ./docker-compose
+          echo "$PWD" >> $GITHUB_PATH
+          chmod 755 ./docker-compose
+      - name: Check docker-compose version
+        run: |
+          docker-compose --version
+      - name: Patch Docker compose file
+        run: |
+          yq -i '.services.sim.networks.leftnet += {"interface_name" : "eth0"}
+                 | .services.sim.networks.rightnet += {"interface_name" : "eth1"}
+                 | .services.server.networks.rightnet += {"interface_name" : "eth0"}
+                 | .services.client.networks.leftnet += {"interface_name" : "eth0"}' docker-compose.yml
       - name: "run interop with openssl server"
         run: |
           python3 ./run.py -s openssl -t ${{ matrix.tests }} -c ${{ matrix.clients }} --log-dir ./logs-server -d