diff --git a/.github/workflows/build-wolfprovider.yml b/.github/workflows/build-wolfprovider.yml index 68bbc0bd..093a16c4 100644 --- a/.github/workflows/build-wolfprovider.yml +++ b/.github/workflows/build-wolfprovider.yml @@ -3,6 +3,9 @@ name: Build wolfProvider on: workflow_call: inputs: + os_ref: + required: true + type: string wolfssl_ref: required: true type: string @@ -17,14 +20,14 @@ on: jobs: build_wolfprovider_common: name: Build wolfProvider - runs-on: ubuntu-22.04 + runs-on: ${{ inputs.os_ref }} timeout-minutes: 20 outputs: - cache_key: wolfprov-${{ inputs.wolfssl_ref }}-${{ inputs.openssl_ref }}-${{ github.sha }} + cache_key: wolfprov-${{ inputs.os_ref }}-${{ inputs.wolfssl_ref }}-${{ inputs.openssl_ref }}-${{ github.sha }} steps: # Check if this version of wolfssl/wolfprovider has already been built, # mark to cache these items on post if we do end up building - # On a push, the first workflow(s) will complete the build and cache it + # On a push, the first workflow(s) will complete the build and cache it # and any delayed workflow will be able to utilize it. # This is not designed to cache builds across commits. - name: Checking wolfSSL/wolfProvider in cache @@ -39,7 +42,7 @@ jobs: openssl-install provider.conf - key: wolfprov-${{ inputs.wolfssl_ref }}-${{ inputs.openssl_ref }}-${{ github.sha }} + key: wolfprov-${{ inputs.os_ref }}-${{ inputs.wolfssl_ref }}-${{ inputs.openssl_ref }}-${{ github.sha }} lookup-only: true # if cache hit, exit the workflow @@ -78,7 +81,7 @@ jobs: openssl-source openssl-install - key: ossl-depends-${{ steps.openssl-ref.outputs.ref }} + key: ossl-depends-${{ inputs.os_ref }}-${{ steps.openssl-ref.outputs.ref }} lookup-only: false # Convert WolfSSL branch name to commit hash if needed @@ -104,48 +107,51 @@ jobs: wolfssl-source wolfssl-install - key: wolfssl-depends-${{ steps.wolfssl-ref.outputs.ref }} + key: wolfssl-depends-${{ inputs.os_ref }}-${{ steps.wolfssl-ref.outputs.ref }} lookup-only: false - name: Build wolfProvider if: steps.wolfprov-cache.outputs.cache-hit != 'true' run: | - OPENSSL_TAG=${{ inputs.openssl_ref }} WOLFSSL_TAG=${{ inputs.wolfssl_ref }} ./scripts/build-wolfprovider.sh + if [ "${{ inputs.os_ref }}" = "ubuntu-24.04-arm" ]; then + export OPENSSL_ARCH="linux-aarch64" + fi + OPENSSL_TAG=${{ inputs.openssl_ref }} WOLFSSL_TAG=${{ inputs.wolfssl_ref }} WOLFPROV_DEBUG=1 ./scripts/build-wolfprovider.sh - # This is potentially chewing up a lot of cache space. + # This is potentially chewing up a lot of cache space. # Could investigate reducing the size of this cache. - # Note that we use actions/cache/save and actions/cache/restore instead of + # Note that we use actions/cache/save and actions/cache/restore instead of # actions/cache to reduce the chance of a cache lock issue. - name: Save wolfProvider into cache if: steps.wolfprov-cache.outputs.cache-hit != 'true' uses: actions/cache/save@v4 - with: + with: path: | wolfssl-source wolfssl-install wolfprov-install openssl-install provider.conf - key: wolfprov-${{ inputs.wolfssl_ref }}-${{ inputs.openssl_ref }}-${{ github.sha }} + key: wolfprov-${{ inputs.os_ref }}-${{ inputs.wolfssl_ref }}-${{ inputs.openssl_ref }}-${{ github.sha }} # If openssl cache miss, save it to the cache - name: Save OpenSSL into cache if: steps.openssl-cache.outputs.cache-hit != 'true' uses: actions/cache/save@v4 - with: + with: path: | openssl-source openssl-install - key: ossl-depends-${{ steps.openssl-ref.outputs.ref }} + key: ossl-depends-${{ inputs.os_ref }}-${{ steps.openssl-ref.outputs.ref }} - name: Save WolfSSL into cache if: steps.wolfssl-cache.outputs.cache-hit != 'true' uses: actions/cache/save@v4 - with: + with: path: | wolfssl-source wolfssl-install - key: wolfssl-depends-${{ steps.wolfssl-ref.outputs.ref }} + key: wolfssl-depends-${{ inputs.os_ref }}-${{ steps.wolfssl-ref.outputs.ref }} - name: Print errors if: ${{ failure() }} diff --git a/.github/workflows/cjose.yml b/.github/workflows/cjose.yml index de825c77..255a7a4c 100644 --- a/.github/workflows/cjose.yml +++ b/.github/workflows/cjose.yml @@ -16,24 +16,27 @@ jobs: build_wolfprovider: uses: ./.github/workflows/build-wolfprovider.yml with: + os_ref: ${{ matrix.os_ref }} wolfssl_ref: ${{ matrix.wolfssl_ref }} openssl_ref: ${{ matrix.openssl_ref }} strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] 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: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] 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', '' ] + runs-on: ${{ matrix.os_ref }} steps: - name: Checkout wolfProvider uses: actions/checkout@v4 @@ -52,7 +55,7 @@ jobs: openssl-install provider.conf - key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} + key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} fail-on-cache-miss: true - name: Install cjose dependencies diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml index 374e61bc..2f635cb0 100644 --- a/.github/workflows/codespell.yml +++ b/.github/workflows/codespell.yml @@ -15,11 +15,16 @@ concurrency: jobs: codespell: name: Check for spelling errors - runs-on: ubuntu-22.04 + strategy: + matrix: + os: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] + runs-on: ${{ matrix.os }} timeout-minutes: 5 steps: - name: Checkout wolfProvider uses: actions/checkout@v4 + with: + fetch-depth: 1 - name: Create exclude file if needed run: | diff --git a/.github/workflows/curl.yml b/.github/workflows/curl.yml index c570ef7d..8ad37678 100644 --- a/.github/workflows/curl.yml +++ b/.github/workflows/curl.yml @@ -16,20 +16,22 @@ jobs: build_wolfprovider: uses: ./.github/workflows/build-wolfprovider.yml with: + os_ref: ${{ matrix.os_ref }} wolfssl_ref: ${{ matrix.wolfssl_ref }} openssl_ref: ${{ matrix.openssl_ref }} strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] test_curl: - runs-on: ubuntu-22.04 needs: build_wolfprovider # This should be a safe limit for the tests to run. timeout-minutes: 20 strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] curl_ref: [ 'master', 'curl-8_4_0' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] @@ -37,12 +39,13 @@ jobs: exclude: - curl_ref: 'master' force_fail: 'WOLFPROV_FORCE_FAIL=1' + runs-on: ${{ matrix.os_ref }} steps: - name: Checkout wolfProvider uses: actions/checkout@v4 with: fetch-depth: 1 - + - name: Retrieving wolfSSL/wolfProvider from cache uses: actions/cache/restore@v4 id: wolfprov-cache @@ -55,7 +58,7 @@ jobs: openssl-install provider.conf - key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} + key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} fail-on-cache-miss: true - name: Install dependencies diff --git a/.github/workflows/grpc.yml b/.github/workflows/grpc.yml index 729da246..6dfcf7a5 100644 --- a/.github/workflows/grpc.yml +++ b/.github/workflows/grpc.yml @@ -16,21 +16,23 @@ jobs: build_wolfprovider: uses: ./.github/workflows/build-wolfprovider.yml with: + os_ref: ${{ matrix.os_ref }} wolfssl_ref: ${{ matrix.wolfssl_ref }} openssl_ref: ${{ matrix.openssl_ref }} strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] test_grpc: - runs-on: ubuntu-22.04 needs: build_wolfprovider # This should be a safe limit for the tests to run. timeout-minutes: 30 strategy: fail-fast: false matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] include: - grpc_ref: v1.60.0 # TODO: Add master tests: >- @@ -41,12 +43,13 @@ jobs: h2_ssl_cert_test h2_ssl_session_reuse_test wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] + runs-on: ${{ matrix.os_ref }} steps: - name: Checkout wolfProvider uses: actions/checkout@v4 with: fetch-depth: 1 - + - name: Retrieving wolfSSL/wolfProvider from cache uses: actions/cache/restore@v4 id: wolfprov-cache @@ -59,7 +62,7 @@ jobs: openssl-install provider.conf - key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} + key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} fail-on-cache-miss: true - name: Confirm IPv4 and IPv6 support @@ -89,7 +92,6 @@ jobs: run: | # Set up the environment for wolfProvider source $GITHUB_WORKSPACE/scripts/env-setup - export ${{ matrix.force_fail }} # Initialize submodules git submodule update --init diff --git a/.github/workflows/iperf.yml b/.github/workflows/iperf.yml index 126f2594..2f33f612 100644 --- a/.github/workflows/iperf.yml +++ b/.github/workflows/iperf.yml @@ -16,24 +16,27 @@ jobs: build_wolfprovider: uses: ./.github/workflows/build-wolfprovider.yml with: + os_ref: ${{ matrix.os_ref }} wolfssl_ref: ${{ matrix.wolfssl_ref }} openssl_ref: ${{ matrix.openssl_ref }} strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] test_iperf: - runs-on: ubuntu-22.04 needs: build_wolfprovider # This should be a safe limit for the tests to run. timeout-minutes: 20 strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] iperf_ref: [ 'master', '3.12' ] force_fail: ['WOLFPROV_FORCE_FAIL=1', ''] + runs-on: ${{ matrix.os_ref }} steps: - name: Checkout wolfProvider uses: actions/checkout@v4 @@ -52,7 +55,7 @@ jobs: openssl-install provider.conf - key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} + key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} fail-on-cache-miss: true - name: Install dependencies diff --git a/.github/workflows/ipmitool.yml b/.github/workflows/ipmitool.yml index 7f0acc65..e68dc95c 100644 --- a/.github/workflows/ipmitool.yml +++ b/.github/workflows/ipmitool.yml @@ -16,24 +16,27 @@ jobs: build_wolfprovider: uses: ./.github/workflows/build-wolfprovider.yml with: + os_ref: ${{ matrix.os_ref }} wolfssl_ref: ${{ matrix.wolfssl_ref }} openssl_ref: ${{ matrix.openssl_ref }} strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] test_ipmitool: - runs-on: ubuntu-22.04 needs: build_wolfprovider # This should be a safe limit for the tests to run. timeout-minutes: 20 strategy: fail-fast: false matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] ipmitool_ref: [ 'master', 'IPMITOOL_1_8_19' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] + runs-on: ${{ matrix.os_ref }} steps: - name: Checkout wolfProvider uses: actions/checkout@v4 @@ -52,7 +55,7 @@ jobs: openssl-install provider.conf - key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} + key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} fail-on-cache-miss: true - name: Install dependencies @@ -74,7 +77,6 @@ jobs: run: | # Set up the environment for wolfProvider source $GITHUB_WORKSPACE/scripts/env-setup - export ${{ matrix.force_fail }} # Verify ipmitool was built and linked correctly with OpenSSL ldd src/ipmitool | grep -E '(libssl|libcrypto)' diff --git a/.github/workflows/liboauth2.yml b/.github/workflows/liboauth2.yml index 35acc55a..76e1f1bc 100644 --- a/.github/workflows/liboauth2.yml +++ b/.github/workflows/liboauth2.yml @@ -16,29 +16,32 @@ jobs: build_wolfprovider: uses: ./.github/workflows/build-wolfprovider.yml with: + os_ref: ${{ matrix.os_ref }} wolfssl_ref: ${{ matrix.wolfssl_ref }} openssl_ref: ${{ matrix.openssl_ref }} strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] test_liboauth2: - runs-on: ubuntu-22.04 needs: build_wolfprovider timeout-minutes: 20 strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] liboauth2_ref: [ 'v1.4.5.4' ] # No master with patch wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] force_fail: ['WOLFPROV_FORCE_FAIL=1', ''] + runs-on: ${{ matrix.os_ref }} steps: - name: Checkout wolfProvider uses: actions/checkout@v4 with: fetch-depth: 1 - + - name: Retrieving wolfSSL/wolfProvider from cache uses: actions/cache/restore@v4 id: wolfprov-cache @@ -51,7 +54,7 @@ jobs: openssl-install provider.conf - key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} + key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} fail-on-cache-miss: true - name: Install liboauth2 dependencies diff --git a/.github/workflows/net-snmp.yml b/.github/workflows/net-snmp.yml index 0ae7f3cc..891813f1 100644 --- a/.github/workflows/net-snmp.yml +++ b/.github/workflows/net-snmp.yml @@ -16,25 +16,28 @@ jobs: build_wolfprovider: uses: ./.github/workflows/build-wolfprovider.yml with: + os_ref: ${{ matrix.os_ref }} wolfssl_ref: ${{ matrix.wolfssl_ref }} openssl_ref: ${{ matrix.openssl_ref }} strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] test_net_snmp: - runs-on: ubuntu-22.04 needs: build_wolfprovider # This should be a safe limit for the tests to run. timeout-minutes: 20 strategy: fail-fast: false matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] net_snmp_ref: ['v5.9.3'] wolfssl_ref: ['master', 'v5.8.0-stable'] openssl_ref: ['openssl-3.5.0'] force_fail: ['WOLFPROV_FORCE_FAIL=1', ''] + runs-on: ${{ matrix.os_ref }} steps: - name: Checkout wolfProvider uses: actions/checkout@v4 @@ -53,7 +56,7 @@ jobs: openssl-install provider.conf - key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} + key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} fail-on-cache-miss: true - name: Install dependencies diff --git a/.github/workflows/nginx.yml b/.github/workflows/nginx.yml index 80ad1fb1..5c4eda7d 100644 --- a/.github/workflows/nginx.yml +++ b/.github/workflows/nginx.yml @@ -16,20 +16,22 @@ jobs: build_wolfprovider: uses: ./.github/workflows/build-wolfprovider.yml with: + os_ref: ${{ matrix.os_ref }} wolfssl_ref: ${{ matrix.wolfssl_ref }} openssl_ref: ${{ matrix.openssl_ref }} strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] test_nginx: - runs-on: ubuntu-22.04 needs: build_wolfprovider # This should be a safe limit for the tests to run. timeout-minutes: 20 strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] nginx_ref: [ 'master', 'release-1.27.4' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] @@ -37,6 +39,7 @@ jobs: exclude: - nginx_ref: 'master' force_fail: 'WOLFPROV_FORCE_FAIL=1' + runs-on: ${{ matrix.os_ref }} steps: - name: Checkout wolfProvider uses: actions/checkout@v4 @@ -55,7 +58,7 @@ jobs: openssl-install provider.conf - key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} + key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} fail-on-cache-miss: true - name: Install dependencies diff --git a/.github/workflows/openldap.yml b/.github/workflows/openldap.yml index 81ea6357..123a63ae 100644 --- a/.github/workflows/openldap.yml +++ b/.github/workflows/openldap.yml @@ -16,24 +16,27 @@ jobs: build_wolfprovider: uses: ./.github/workflows/build-wolfprovider.yml with: + os_ref: ${{ matrix.os_ref }} wolfssl_ref: ${{ matrix.wolfssl_ref }} openssl_ref: ${{ matrix.openssl_ref }} strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] test_openldap: - runs-on: ubuntu-22.04 needs: build_wolfprovider # This should be a safe limit for the tests to run. timeout-minutes: 20 strategy: fail-fast: false matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] openldap_ref: [ 'master', 'OPENLDAP_REL_ENG_2_5_13', 'OPENLDAP_REL_ENG_2_6_7' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] + runs-on: ${{ matrix.os_ref }} steps: - name: Checkout wolfProvider uses: actions/checkout@v4 @@ -52,7 +55,7 @@ jobs: openssl-install provider.conf - key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} + key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} fail-on-cache-miss: true - name: Install dependencies @@ -72,7 +75,6 @@ jobs: run: | # Set up the environment for wolfProvider source $GITHUB_WORKSPACE/scripts/env-setup - export ${{ matrix.force_fail }} # Generate configure script rm -f aclocal.m4 diff --git a/.github/workflows/openssh.yml b/.github/workflows/openssh.yml index 9c5492b3..381b174e 100644 --- a/.github/workflows/openssh.yml +++ b/.github/workflows/openssh.yml @@ -16,20 +16,22 @@ jobs: build_wolfprovider: uses: ./.github/workflows/build-wolfprovider.yml with: + os_ref: ${{ matrix.os_ref }} wolfssl_ref: ${{ matrix.wolfssl_ref }} openssl_ref: ${{ matrix.openssl_ref }} strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] test_openssh: - runs-on: ubuntu-22.04 needs: build_wolfprovider # This should be a safe limit for the tests to run. timeout-minutes: 20 strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] openssh_ref: [ 'master', 'V_10_0_P2', 'V_9_9_P1' ] @@ -37,6 +39,7 @@ jobs: exclude: - openssh_ref: 'master' force_fail: 'WOLFPROV_FORCE_FAIL=1' + runs-on: ${{ matrix.os_ref }} steps: - name: Checkout wolfProvider uses: actions/checkout@v4 @@ -55,7 +58,7 @@ jobs: openssl-install provider.conf - key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} + key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} fail-on-cache-miss: true - name: Checkout OSP diff --git a/.github/workflows/openvpn.yml b/.github/workflows/openvpn.yml index b5e72ba0..53e3e5ff 100644 --- a/.github/workflows/openvpn.yml +++ b/.github/workflows/openvpn.yml @@ -16,20 +16,22 @@ jobs: build_wolfprovider: uses: ./.github/workflows/build-wolfprovider.yml with: + os_ref: ${{ matrix.os_ref }} wolfssl_ref: ${{ matrix.wolfssl_ref }} openssl_ref: ${{ matrix.openssl_ref }} strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] test_openvpn: - runs-on: ubuntu-22.04 needs: build_wolfprovider # This should be a safe limit for the tests to run. timeout-minutes: 20 strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] openvpn_ref: [ 'master', 'v2.6.12' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] @@ -37,6 +39,7 @@ jobs: exclude: - openvpn_ref: 'master' force_fail: 'WOLFPROV_FORCE_FAIL=1' + runs-on: ${{ matrix.os_ref }} steps: - name: Checkout wolfProvider uses: actions/checkout@v4 @@ -55,7 +58,7 @@ jobs: openssl-install provider.conf - key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} + key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} fail-on-cache-miss: true - name: Install test dependencies diff --git a/.github/workflows/simple.yml b/.github/workflows/simple.yml index 41e6665d..f6a16a55 100644 --- a/.github/workflows/simple.yml +++ b/.github/workflows/simple.yml @@ -13,24 +13,36 @@ concurrency: # END OF COMMON SECTION jobs: + build-wolfprovider: + uses: ./.github/workflows/build-wolfprovider.yml + with: + os_ref: ${{ matrix.os_ref }} + wolfssl_ref: ${{ matrix.wolfssl_ref }} + openssl_ref: ${{ matrix.openssl_ref }} + strategy: + matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] + wolfssl_ref: [ 'master', 'v5.8.0-stable' ] + openssl_ref: [ 'master', 'openssl-3.5.0' ] + simple_test: name: Simple Test - runs-on: ubuntu-22.04 timeout-minutes: 20 strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] openssl_ref: [ 'master', 'openssl-3.5.0' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] force_fail: ['WOLFPROV_FORCE_FAIL=1', ''] - + runs-on: ${{ matrix.os_ref }} steps: - name: Checkout wolfProvider uses: actions/checkout@v4 + with: + fetch-depth: 1 - # Check if this version of wolfssl/wolfprovider has already been built, - # mark to cache these items on post if we do end up building - - name: Checking wolfSSL/wolfProvider in cache - uses: actions/cache@v4 + - name: Retrieving wolfSSL/wolfProvider from cache + uses: actions/cache/restore@v4 id: wolfprov-cache with: path: | @@ -41,27 +53,8 @@ jobs: openssl-install provider.conf - key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} - lookup-only: true - - # If wolfssl/wolfprovider have not yet been built, pull ossl from cache - - name: Checking OpenSSL in cache - if: steps.wolfprov-${{ matrix.wolfssl_ref }}-cache.hit != 'true' - uses: actions/cache@v4 - id: openssl-cache - with: - path: | - openssl-source - openssl-install - - key: ossl-depends-${{ matrix.openssl_ref }}-${{ github.sha }} - lookup-only: true - - # If not yet built this version, build it now - - name: Build wolfProvider - if: steps.wolfprov-${{ matrix.wolfssl_ref }}-cache.hit != 'true' - run: | - OPENSSL_TAG=${{ matrix.openssl_ref }} WOLFSSL_TAG=${{ matrix.wolfssl_ref }} ./scripts/build-wolfprovider.sh + key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} + fail-on-cache-miss: true - name: Run simple tests run: | diff --git a/.github/workflows/socat.yml b/.github/workflows/socat.yml index edf1e98b..c89c9f87 100644 --- a/.github/workflows/socat.yml +++ b/.github/workflows/socat.yml @@ -16,22 +16,25 @@ jobs: build_wolfprovider: uses: ./.github/workflows/build-wolfprovider.yml with: + os_ref: ${{ matrix.os_ref }} wolfssl_ref: ${{ matrix.wolfssl_ref }} openssl_ref: ${{ matrix.openssl_ref }} strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] test_socat: - runs-on: ubuntu-22.04 needs: build_wolfprovider # This should be a safe limit for the tests to run. timeout-minutes: 20 strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] + runs-on: ${{ matrix.os_ref }} steps: - name: Checkout wolfProvider uses: actions/checkout@v4 @@ -50,7 +53,7 @@ jobs: openssl-install provider.conf - key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} + key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} fail-on-cache-miss: true - name: Install dependencies @@ -75,7 +78,6 @@ jobs: run: | # Set up the environment for wolfProvider source $GITHUB_WORKSPACE/scripts/env-setup - export ${{ matrix.force_fail }} # Verify OpenSSL loads wolfProvider $GITHUB_WORKSPACE/openssl-install/bin/openssl list -providers diff --git a/.github/workflows/sssd.yml b/.github/workflows/sssd.yml index eb9f9ea7..146ad34c 100644 --- a/.github/workflows/sssd.yml +++ b/.github/workflows/sssd.yml @@ -90,16 +90,10 @@ jobs: - name: Run tests working-directory: sssd run: | - # Set environment variables - 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 + # Set up the environment for wolfProvider + source $GITHUB_WORKSPACE/scripts/env-setup export ${{ matrix.force_fail }} - echo "Checking OpenSSL providers:" - $GITHUB_WORKSPACE/openssl-install/bin/openssl list -providers | tee provider-list.log - grep -q libwolfprov provider-list.log || (echo "ERROR: libwolfprov not found in OpenSSL providers" && exit 1) - # Run tests and save result make check 2>&1 | tee sssd-test.log TEST_RESULT=$? diff --git a/.github/workflows/stunnel.yml b/.github/workflows/stunnel.yml index cd946044..47961b65 100644 --- a/.github/workflows/stunnel.yml +++ b/.github/workflows/stunnel.yml @@ -16,20 +16,22 @@ jobs: build_wolfprovider: uses: ./.github/workflows/build-wolfprovider.yml with: + os_ref: ${{ matrix.os_ref }} wolfssl_ref: ${{ matrix.wolfssl_ref }} openssl_ref: ${{ matrix.openssl_ref }} strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] test_stunnel: - runs-on: ubuntu-22.04 needs: build_wolfprovider # This should be a safe limit for the tests to run. timeout-minutes: 10 strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] stunnel_ref: [ 'master', 'stunnel-5.67' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] @@ -37,6 +39,7 @@ jobs: exclude: - stunnel_ref: 'master' force_fail: 'WOLFPROV_FORCE_FAIL=1' + runs-on: ${{ matrix.os_ref }} steps: - name: Checkout wolfProvider uses: actions/checkout@v4 @@ -55,7 +58,7 @@ jobs: openssl-install provider.conf - key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} + key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} fail-on-cache-miss: true - name: Install dependencies diff --git a/.github/workflows/tcpdump.yml b/.github/workflows/tcpdump.yml index 06347929..d071a947 100644 --- a/.github/workflows/tcpdump.yml +++ b/.github/workflows/tcpdump.yml @@ -13,19 +13,21 @@ jobs: build_wolfprovider: uses: ./.github/workflows/build-wolfprovider.yml with: + os_ref: ${{ matrix.os_ref }} wolfssl_ref: ${{ matrix.wolfssl_ref }} openssl_ref: ${{ matrix.openssl_ref }} strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] test_tcpdump: - runs-on: ubuntu-22.04 needs: build_wolfprovider timeout-minutes: 15 strategy: matrix: + os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ] wolfssl_ref: [ 'master', 'v5.8.0-stable' ] openssl_ref: [ 'openssl-3.5.0' ] tcpdump_ref: [ 'master', 'tcpdump-4.99.3' ] @@ -33,6 +35,7 @@ jobs: exclude: - tcpdump_ref: 'master' force_fail: 'WOLFPROV_FORCE_FAIL=1' + runs-on: ${{ matrix.os_ref }} steps: - name: Checkout wolfProvider @@ -51,7 +54,7 @@ jobs: wolfprov-install openssl-install provider.conf - key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} + key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} fail-on-cache-miss: true - name: Install test dependencies @@ -99,14 +102,13 @@ jobs: # Set up the environment for wolfProvider source $GITHUB_WORKSPACE/scripts/env-setup export ${{ matrix.force_fail }} - + # Run tests make check 2>&1 | tee tcpdump-test.log TEST_RESULT=$? - + if [ $TEST_RESULT -ne 0 ]; then grep -A2 -B2 "exit code\|failed\|FAILED" tcpdump-test.log || true fi - - $GITHUB_WORKSPACE/.github/scripts/check-workflow-result.sh $TEST_RESULT ${{ matrix.force_fail }} tcpdump + $GITHUB_WORKSPACE/.github/scripts/check-workflow-result.sh $TEST_RESULT ${{ matrix.force_fail }} tcpdump