summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Horman <nhorman@openssl.org>2024-08-05 16:52:06 -0400
committerNeil Horman <nhorman@openssl.org>2024-08-16 14:34:08 -0400
commit4c2242b67cd864ac9f5584febda71f52cbe41395 (patch)
treecb02cf6dfa4daf09db5e24b728994c07ee3e7f24
parent8ffdfea6395b7795b8f149ca572326d6cac392a0 (diff)
Add workflow to do nightly build of interop container and push to quay
Reviewed-by: Kurt Roeckx <kurt@roeckx.be> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/25091)
-rw-r--r--.github/workflows/build_quic_interop_container.yml25
-rw-r--r--interop/quic-openssl-docker/Dockerfile12
-rw-r--r--interop/quic-openssl-docker/README.md2
-rw-r--r--interop/quic-openssl-docker/run_endpoint.sh5
4 files changed, 38 insertions, 6 deletions
diff --git a/.github/workflows/build_quic_interop_container.yml b/.github/workflows/build_quic_interop_container.yml
new file mode 100644
index 0000000000..be6596c5a0
--- /dev/null
+++ b/.github/workflows/build_quic_interop_container.yml
@@ -0,0 +1,25 @@
+name: "Build openssl interop container from master"
+
+on:
+ schedule:
+ - cron: '20 0 * * *'
+ workflow_dispatch:
+
+jobs:
+ update_quay_container:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - 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 interop/quic-openssl-docker/
+ docker build -t quay.io/openssl-ci/openssl-quic-interop:latest .
+ - name: "Push to quay"
+ run: |
+ docker push quay.io/openssl-ci/openssl-quic-interop:latest
+
diff --git a/interop/quic-openssl-docker/Dockerfile b/interop/quic-openssl-docker/Dockerfile
index c35c0f80b8..57bf25c30e 100644
--- a/interop/quic-openssl-docker/Dockerfile
+++ b/interop/quic-openssl-docker/Dockerfile
@@ -10,28 +10,30 @@ RUN apt-get update && apt-get install -y \
git make gcc perl cmake build-essential \
autoconf libtool pkg-config libpsl-dev
+WORKDIR /
+
# build nghttp3
RUN git clone https://github.com/ngtcp2/nghttp3.git && \
cd nghttp3 && \
git submodule update --init && \
autoreconf -i && \
./configure --prefix=/usr && \
- make -j check && \
+ make -j 4 check && \
make install && \
- rm -rf nghttp3
+ rm -rf /nghttp3
# download and build openssl
RUN git clone https://github.com/openssl/openssl.git && \
cd openssl && \
./Configure enable-fips no-docs --prefix=/usr --openssldir=/etc/pki/tls && \
- make -j && make install && \
- rm -rf openssl
+ make -j 4 && make install && \
+ rm -rf /openssl
# Build curl
RUN git clone https://github.com/curl/curl.git && \
cd curl && \
autoreconf -fi && ./configure --with-openssl-quic --with-openssl --with-nghttp3 --prefix=/usr && \
- make -j && \
+ make -j 4 && \
make install && \
rm -rf /curl
diff --git a/interop/quic-openssl-docker/README.md b/interop/quic-openssl-docker/README.md
index ff5a55834f..097710d057 100644
--- a/interop/quic-openssl-docker/README.md
+++ b/interop/quic-openssl-docker/README.md
@@ -7,7 +7,7 @@ Overview
--------
This Dockerfile builds a container for use with the
-[QUIC working group interop testing facility](https://interop.seemann.io/?run=2024-08-05T08:30)
+[QUIC working group interop testing facility](https://interop.seemann.io/)
It can also be used locally to test QUIC interoperability via the
[QUIC interop runner](https://github.com/quic-interop/quic-interop-runner)
Please see instructions there for running local interop testing
diff --git a/interop/quic-openssl-docker/run_endpoint.sh b/interop/quic-openssl-docker/run_endpoint.sh
index c9ecd668f7..b6af9d3ec1 100644
--- a/interop/quic-openssl-docker/run_endpoint.sh
+++ b/interop/quic-openssl-docker/run_endpoint.sh
@@ -1,5 +1,7 @@
#!/bin/bash
+set -euxo pipefail
+
CURLRC=~/testcase_curlrc
# Set up the routing needed for the simulation
@@ -83,5 +85,8 @@ if [ "$ROLE" == "client" ]; then
elif [ "$ROLE" == "server" ]; then
echo "UNSUPPORTED"
exit 127
+else
+ echo "Unknown ROLE $ROLE"
+ exit 127
fi