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