From 7d8558bcb716d6f07895c76d278827068f964635 Mon Sep 17 00:00:00 2001 From: Ondrej Moris Date: Mon, 5 Feb 2024 16:55:27 +0100 Subject: [PATCH] Run CI with integration test for libssh Signed-off-by: Ondrej Moris --- .github/workflows/integration.yml | 57 +++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .github/workflows/integration.yml diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml new file mode 100644 index 00000000..57288b38 --- /dev/null +++ b/.github/workflows/integration.yml @@ -0,0 +1,57 @@ +--- +name: Integration tests + +on: + push: + branches: ["main"] + pull_request: + branches: ["main"] + +env: + PROVIDER_LIBSSH_DEBUG_FILE: /tmp/libssh-provider-debug.log + +jobs: + build: + name: libssh + runs-on: ubuntu-22.04 + container: fedora:latest + steps: + - name: Install Dependencies + run: | + dnf -y install gcc g++ git cmake libcmocka libcmocka-devel \ + autoconf automake autoconf-archive libtool softhsm nss-tools \ + gnutls-utils p11-kit p11-kit-devel p11-kit-server opensc \ + softhsm-devel socket_wrapper nss_wrapper uid_wrapper \ + pam_wrapper priv_wrapper openssh-server zlib-devel + - name: Checkout Repository + uses: actions/checkout@v3 + - name: Setup, Build and Install pkcs11-provider + run: | + autoreconf -fiv + ./configure --libdir=/usr/lib64 + make + make install + - name: Clone, Setup and Build libssh + run: | + git clone https://gitlab.com/libssh/libssh-mirror.git + cd libssh-mirror/ + mkdir build + cd build/ + cmake \ + -DUNIT_TESTING=ON \ + -DCLIENT_TESTING=ON \ + -DCMAKE_BUILD_TYPE=Debug \ + -DWITH_PKCS11_URI=ON \ + -DWITH_PKCS11_PROVIDER=ON \ + -DPKCS11_PROVIDER=/usr/lib64/ossl-modules/pkcs11.so .. + make + - name: Run libssh pkcs11-provider tests + run: | + cd libssh-mirror/build + ! test -e $PROVIDER_LIBSSH_DEBUG_FILE + PKCS11_PROVIDER_DEBUG=file:$PROVIDER_LIBSSH_DEBUG_FILE ctest \ + --output-on-failure -R \ + '(torture_auth_pkcs11|torture_pki_rsa_uri|torture_pki_ecdsa_uri)' \ + | tee testout.log 2>&1 + grep -q "100% tests passed, 0 tests failed out of 3" testout.log + test -e $PROVIDER_LIBSSH_DEBUG_FILE # Proves that provider was used