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)
This commit is contained in:
Neil Horman 2024-08-05 16:52:06 -04:00
parent 8ffdfea639
commit 4c2242b67c
4 changed files with 38 additions and 6 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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