From fbb06b5174ce7081dafdfa49a96d9207d24cafb2 Mon Sep 17 00:00:00 2001 From: Paul Adelsbach Date: Mon, 2 Jun 2025 23:41:16 +0000 Subject: [PATCH] Add support for testing the cjose project --- .github/workflows/cjose.yml | 109 ++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 .github/workflows/cjose.yml diff --git a/.github/workflows/cjose.yml b/.github/workflows/cjose.yml new file mode 100644 index 00000000..80f8798b --- /dev/null +++ b/.github/workflows/cjose.yml @@ -0,0 +1,109 @@ +name: cjose Tests + +# START OF COMMON SECTION +on: + push: + branches: [ 'master', 'main', 'release/**' ] + pull_request: + branches: [ '*' ] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true +# END OF COMMON SECTION + +jobs: + build_wolfprovider: + uses: ./.github/workflows/build-wolfprovider.yml + with: + wolfssl_ref: ${{ matrix.wolfssl_ref }} + openssl_ref: ${{ matrix.openssl_ref }} + strategy: + matrix: + wolfssl_ref: [ 'master', 'v5.8.0-stable' ] + openssl_ref: [ 'openssl-3.5.0' ] + + test_cjose: + runs-on: ubuntu-22.04 + needs: build_wolfprovider + # This should be a safe limit for the tests to run. + timeout-minutes: 20 + strategy: + matrix: + cjose_ref: [ 'master', 'v0.6.2.1' ] + wolfssl_ref: [ 'master', 'v5.8.0-stable' ] + openssl_ref: [ 'openssl-3.5.0' ] + force_fail: [ 'WOLFPROV_FORCE_FAIL=1', '' ] + steps: + # Checkout the source so we can run the check-workflow-result script + - name: Checkout wolfProvider + uses: actions/checkout@v4 + with: + sparse-checkout: | + .github + + - name: Retrieving OpenSSL from cache + uses: actions/cache/restore@v4 + id: openssl-cache + with: + path: | + openssl-source + openssl-install + + key: ossl-depends-${{ matrix.openssl_ref }}-${{ github.sha }} + fail-on-cache-miss: true + + - name: Retrieving wolfSSL/wolfProvider from cache + uses: actions/cache/restore@v4 + id: wolfprov-cache + with: + path: | + wolfssl-source + wolfssl-install + wolfprov-install + provider.conf + + key: wolfprov-${{ matrix.wolfssl_ref }}-${{ github.sha }} + fail-on-cache-miss: true + + - name: Install cjose dependencies + run: | + sudo apt-get update + sudo apt-get install build-essential autoconf libtool pkg-config clang libc++-dev + sudo apt-get install libjansson-dev check + + - name: Download cjose + uses: actions/checkout@v4 + with: + repository: OpenIDC/cjose + ref: ${{ matrix.cjose_ref }} + path: cjose + + - name: Build cjose + working-directory: cjose + run: | + # Configure with OpenSSL + ./configure CFLAGS="-Wno-error=deprecated-declarations" --with-openssl=/git/wolfProvider/openssl-install + + # Build cjose + make + + - name: Run cjose tests + working-directory: cjose + run: | + # Set up the environment for wolfProvider + export LD_LIBRARY_PATH=$GITHUB_WORKSPACE/wolfssl-install/lib:$GITHUB_WORKSPACE/openssl-install/lib64 + export OPENSSL_CONF=$GITHUB_WORKSPACE/provider.conf + export OPENSSL_MODULES=$GITHUB_WORKSPACE/wolfprov-install/lib + export ${{ matrix.force_fail }} + export SHELL=/bin/bash + + # Verify OpenSSL loads wolfProvider + $GITHUB_WORKSPACE/openssl-install/bin/openssl list -providers | grep libwolfprov + + # Run tests + make test || true + + # Capture result + TEST_RESULT=$(tail -1 ./test/check_cjose.log | grep PASS; echo $?) + $GITHUB_WORKSPACE/.github/scripts/check-workflow-result.sh $TEST_RESULT ${{ matrix.force_fail }} cjose