diff options
author | Neil Horman <nhorman@openssl.org> | 2023-11-14 06:01:51 -0500 |
---|---|---|
committer | Neil Horman <nhorman@openssl.org> | 2024-01-05 13:01:40 -0500 |
commit | 61ad268a610b7e1cff117fda197b8d77f90688a4 (patch) | |
tree | 7b8a1071a0e49eebdbe7143b5385678ac58fa1ac /.github | |
parent | b820d1c8baef9e32b70c192ffe5ec57bb340b4f3 (diff) |
Adding interop tests
Fedora has some fairly nice interoperability tests that we can leverage
to build a PR and test it against gnutls and nss libraries. This commit
adds the interop-tests.yml ci job to do that work, and run the interop
tests from beaker.
Fixes #20685
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22726)
(cherry picked from commit 337eb99c8474ed380f3aa6fbd6b2a4ab5d39aa26)
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/interop-tests.yml | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/.github/workflows/interop-tests.yml b/.github/workflows/interop-tests.yml new file mode 100644 index 0000000000..952e1b7d2d --- /dev/null +++ b/.github/workflows/interop-tests.yml @@ -0,0 +1,50 @@ +# Notes: +# /__w/openssl is the path that github bind-mounts into the container so the ci +# filesystem for this job can be reached. Please note that any changes made to +# this job involving file system paths should be made prefixed with, or relative +# to that directory +name: Interoperability tests with GnuTLS and NSS +on: + schedule: + - cron: '0 6 * * *' +jobs: + test: + runs-on: ubuntu-22.04 + container: + image: docker.io/fedora:39 + options: --sysctl net.ipv6.conf.lo.disable_ipv6=0 + timeout-minutes: 90 + strategy: + fail-fast: false + matrix: + COMPONENT: [gnutls, nss] + env: + COMPONENT: ${{ matrix.COMPONENT }} + steps: + - uses: actions/checkout@v4 + - name : Install needed tools + run: | + dnf -y install perl gcc rpmdevtools dnf-utils make tmt-all beakerlib \ + fips-mode-setup crypto-policies-scripts + - name: install interop tests + run: | + cd /__w/openssl/openssl + git clone --branch=openssl --depth=1 https://gitlab.com/redhat-crypto/tests/interop.git + - name: build openssl as an rpm + run: | + mkdir -p /build/SPECS && cd /build && echo -e "%_topdir /build\n%_lto_cflags %{nil}" >~/.rpmmacros && rpmdev-setuptree + cd /build && cp /__w/openssl/openssl/interop/openssl.spec SPECS/ && \ + cd SPECS/ && source /__w/openssl/openssl/VERSION.dat && \ + sed -i "s/^Version: .*\$/Version: $MAJOR.$MINOR.$PATCH/" openssl.spec && \ + sed -i 's/^Release: .*$/Release: dev/' openssl.spec + yum-builddep -y /build/SPECS/openssl.spec # just for sure nothing is missing + mkdir -p /build/SOURCES + tar --transform "s/^__w\/openssl\/openssl/openssl-$MAJOR.$MINOR.$PATCH/" -czf /build/SOURCES/openssl-$MAJOR.$MINOR.$PATCH.tar.gz /__w/openssl/openssl/ + rpmbuild -bb /build/SPECS/openssl.spec + dnf install -y /build/RPMS/x86_64/openssl-* + - name: Run interop tests + run: | + cd interop + tmt run -av plans -n interop tests -f "tag: interop-openssl & tag: interop-$COMPONENT" provision -h local execute -h tmt --interactive + openssl version + echo "Finished - important to prevent unwanted output truncating" |