diff --git a/.github/workflows/asan.yml b/.github/workflows/asan.yml deleted file mode 100644 index e10e82e4..00000000 --- a/.github/workflows/asan.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Asan Test - -# START OF COMMON SECTION -on: - push: - branches: [ "*" ] - pull_request: - branches: [ "*" ] - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true -# END OF COMMON SECTION - -jobs: - make_check: - name: asan test - runs-on: ubuntu-latest - # This should be a safe limit for the tests to run. - timeout-minutes: 10 - steps: - - uses: actions/checkout@v4 - name: Checkout wolfProvider - - - name: Test wolfProvider - run: | - WOLFPROV_CONFIG_CFLAGS="-static-libasan -fsanitize=address,undefined -g" ./scripts/build-wolfprovider.sh - - - name: Print errors - if: ${{ failure() }} - run: | - if [ -f test-suite.log ] ; then - cat test-suite.log - fi - diff --git a/.github/workflows/build-wolfprovider.yml b/.github/workflows/build-wolfprovider.yml index 2a077190..7a2531a9 100644 --- a/.github/workflows/build-wolfprovider.yml +++ b/.github/workflows/build-wolfprovider.yml @@ -9,56 +9,87 @@ on: openssl_ref: required: true type: string - outputs: - cache_key: - description: "Cache key for the build artifacts" - value: ${{ jobs.build_wolfprovider.outputs.cache_key }} jobs: - build_wolfprovider: + bwp: name: Build wolfProvider runs-on: ubuntu-22.04 timeout-minutes: 20 - outputs: - cache_key: wolfprov-${{ inputs.wolfssl_ref }}-${{ github.sha }} steps: + # Must come first so that the directory is present - name: Checkout wolfProvider uses: actions/checkout@v4 + with: + fetch-depth: 1 + + # Enable ccache to speed up builds + # # Must be after the checkout step + # - name: ccache + # if: steps.wolfprov-cache.outputs.cache-hit != 'true' + # uses: hendrikmuhs/ccache-action@v1.2 + # with: + # create-symlink: true # 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 - id: wolfprov-cache - with: - path: | - wolfssl-source - wolfssl-install - wolfprov-install - provider.conf + # - name: Checking wolfSSL/wolfProvider in cache + # uses: actions/cache/restore@v4 + # id: wolfprov-cache + # with: + # path: | + # wolfssl-source + # wolfssl-install + # wolfprov-install + # provider.conf - key: wolfprov-${{ inputs.wolfssl_ref }}-${{ github.sha }} - lookup-only: true + # key: wolfprov-${{ inputs.wolfssl_ref }}-${{ inputs.openssl_ref }}-${{ github.sha }} + # # no need to restore from cache here since it will be restored + # # in the main workflows + # lookup-only: true # If wolfssl/wolfprovider have not yet been built, pull ossl from cache - name: Checking OpenSSL in cache - if: steps.wolfprov-cache.outputs.cache-hit != 'true' - uses: actions/cache@v4 + # if: steps.wolfprov-cache.outputs.cache-hit != 'true' + uses: actions/cache/restore@v4 id: openssl-cache with: path: | openssl-source openssl-install - key: ossl-depends-${{ inputs.openssl_ref }}-${{ github.sha }} - lookup-only: true + key: ossl-depends-${{ inputs.openssl_ref }} + lookup-only: false + + # If wolfssl/wolfprovider have not yet been built, pull wolfssl from cache + - name: Checking WolfSSL in cache + # if: steps.wolfprov-cache.outputs.cache-hit != 'true' + uses: actions/cache/restore@v4 + id: wolfssl-cache + with: + path: | + wolfssl-source + wolfssl-install + + key: wolfssl-depends-${{ inputs.wolfssl_ref }} + lookup-only: false # If not yet built this version, build it now - name: Build wolfProvider - if: steps.wolfprov-cache.outputs.cache-hit != 'true' + # if: steps.wolfprov-cache.outputs.cache-hit != 'true' run: | OPENSSL_TAG=${{ inputs.openssl_ref }} WOLFSSL_TAG=${{ inputs.wolfssl_ref }} ./scripts/build-wolfprovider.sh + - name: Save wolfProvider into cache + # if: steps.wolfprov-cache.outputs.cache-hit != 'true' + uses: actions/cache/save@v4 + with: + path: | + wolfssl-source + wolfssl-install + wolfprov-install + provider.conf + key: wolfprov-${{ inputs.wolfssl_ref }}-${{ inputs.openssl_ref }}-${{ github.sha }} + - name: Print errors if: ${{ failure() }} run: | diff --git a/.github/workflows/cjose.yml b/.github/workflows/cjose.yml index 80f8798b..f7fe9e02 100644 --- a/.github/workflows/cjose.yml +++ b/.github/workflows/cjose.yml @@ -42,28 +42,15 @@ jobs: sparse-checkout: | .github - - name: Retrieving OpenSSL from cache + - name: Retrieving wolfProvider from cache uses: actions/cache/restore@v4 - id: openssl-cache + id: wolfprov-cache-restore 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 }} + key: wolfprov-${{ 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 deleted file mode 100644 index 374e61bc..00000000 --- a/.github/workflows/codespell.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: Codespell test - -# 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: - codespell: - name: Check for spelling errors - runs-on: ubuntu-22.04 - timeout-minutes: 5 - steps: - - name: Checkout wolfProvider - uses: actions/checkout@v4 - - - name: Create exclude file if needed - run: | - if [ ! -f .codespellexcludelines ]; then - touch .codespellexcludelines - fi - - - name: Run codespell - uses: codespell-project/actions-codespell@v2.1 - with: - check_filenames: true - check_hidden: true - # Add comma separated list of words that occur multiple times that should be ignored (sorted alphabetically, case sensitive) - ignore_words_list: adin,addIn,aNULL,brunch,carryIn,chainG,ciph,cLen,cliKs,dout,emac,haveA,inCreated,inOut,inout,larg,LEAPYEAR,Merget,optionA,parm,parms,repid,rIn,userA,ser,siz,te,Te,toLen - # The exclude_file contains lines of code that should be ignored. This is useful for individual lines which have non-words that can safely be ignored. - exclude_file: '.codespellexcludelines' - # To skip files entirely from being processed, add it to the following list: - skip: '*.cproject,*.der,*.mtpj,*.pem,*.vcxproj,.git,*.launch,*.scfg,*.revoked,*.txt' - - - name: Print errors - if: ${{ failure() }} - run: | - if [ -f test-suite.log ] ; then - cat test-suite.log - fi diff --git a/.github/workflows/curl.yml b/.github/workflows/curl.yml deleted file mode 100644 index e3d61342..00000000 --- a/.github/workflows/curl.yml +++ /dev/null @@ -1,105 +0,0 @@ -name: Curl 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_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: - curl_ref: [ 'master', 'curl-8_4_0' ] - wolfssl_ref: [ 'master', 'v5.8.0-stable' ] - openssl_ref: [ 'openssl-3.5.0' ] - force_fail: ['WOLFPROV_FORCE_FAIL=1', ''] - exclude: - - curl_ref: 'master' - force_fail: 'WOLFPROV_FORCE_FAIL=1' - steps: - - name: Checkout wolfProvider - uses: actions/checkout@v4 - - - 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 dependencies - run: | - sudo apt-get update - sudo apt-get install nghttp2 libpsl5 libpsl-dev python3-impacket - - - name: Build curl - uses: wolfSSL/actions-build-autotools-project@v1 - with: - repository: curl/curl - path: curl - ref: ${{ matrix.curl_ref }} - configure: --with-openssl - check: false - - - name: Generate certificates for curl master force-fail tests - run: | - if [ "${{ matrix.force_fail }}" = "WOLFPROV_FORCE_FAIL=1" ] && - [ "${{ matrix.curl_ref }}" = "master" ]; then - cd curl/tests/certs - make test-ca.cacert - cd ../.. - fi - - name: Test curl with wolfProvider - working-directory: curl - 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 - export PKG_CONFIG_PATH=$GITHUB_WORKSPACE/openssl-install/lib64/pkgconfig - export ${{ matrix.force_fail }} - export CURL_REF=${{ matrix.curl_ref }} - - # Run tests and save output to test.log - mkdir -p tests - make -j$(nproc) test-ci 2>&1 | tee tests/test.log - TEST_RESULT=$? - $GITHUB_WORKSPACE/.github/scripts/check-workflow-result.sh $TEST_RESULT ${{ matrix.force_fail }} curl diff --git a/.github/workflows/grpc.yml b/.github/workflows/grpc.yml deleted file mode 100644 index bdeb2490..00000000 --- a/.github/workflows/grpc.yml +++ /dev/null @@ -1,125 +0,0 @@ -name: gRPC 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_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: - include: - - grpc_ref: v1.60.0 # TODO: Add master - tests: >- - bad_ssl_alpn_test bad_ssl_cert_test client_ssl_test - crl_ssl_transport_security_test server_ssl_test - ssl_transport_security_test ssl_transport_security_utils_test - test_core_security_ssl_credentials_test test_cpp_end2end_ssl_credentials_test - h2_ssl_cert_test h2_ssl_session_reuse_test - wolfssl_ref: [ 'master', 'v5.8.0-stable' ] - openssl_ref: [ 'openssl-3.5.0' ] - steps: - - name: Checkout wolfProvider - uses: actions/checkout@v4 - - - 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: Confirm IPv4 and IPv6 support - run: | - ip addr list lo | grep 'inet ' - ip addr list lo | grep 'inet6 ' - - - name: Install prerequisites - run: | - sudo apt-get update - sudo apt-get install -y build-essential autoconf libtool pkg-config clang libc++-dev - - - name: Setup cmake version - uses: jwlawson/actions-setup-cmake@v2 - with: - cmake-version: '3.25.x' - - - name: Checkout grpc - uses: actions/checkout@v4 - with: - repository: grpc/grpc - path: grpc - ref: ${{ matrix.grpc_ref }} - - - name: Build grpc with wolfProvider - working-directory: ./grpc - run: | - # Setup environment for wolfProviders - 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 - - # Initialize submodules - git submodule update --init - - # Build - mkdir -p cmake/build - cd cmake/build - - # Configure with OpenSSL and wolfProvider - cmake -DgRPC_BUILD_TESTS=ON -DgRPC_SSL_PROVIDER=package \ - -DOPENSSL_ROOT_DIR=$GITHUB_WORKSPACE/openssl-install ../.. - - # Build the tests - make -j $(nproc) ${{ matrix.tests }} - - - name: Run grpc tests with wolfProvider - working-directory: ./grpc - run: | - # Start the port server - ./tools/run_tests/start_port_server.py - - # Run the tests - for t in ${{ matrix.tests }} ; do - ./cmake/build/$t - done diff --git a/.github/workflows/iperf.yml b/.github/workflows/iperf.yml deleted file mode 100644 index c85a882b..00000000 --- a/.github/workflows/iperf.yml +++ /dev/null @@ -1,144 +0,0 @@ -name: iperf 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_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: - wolfssl_ref: [ 'master', 'v5.8.0-stable' ] - openssl_ref: [ 'openssl-3.5.0' ] - iperf_ref: [ 'master', '3.12' ] - force_fail: ['WOLFPROV_FORCE_FAIL=1', ''] - steps: - - name: Checkout wolfProvider - uses: actions/checkout@v4 - - - 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 dependencies - run: | - sudo apt-get update - sudo apt-get install build-essential autoconf libtool pkg-config clang libc++-dev - - - name: Checkout iperf - uses: actions/checkout@v4 - with: - repository: esnet/iperf - ref: ${{ matrix.iperf_ref }} - path: iperf - - - name: Build iperf - working-directory: iperf - run: | - # Configure with OpenSSL - ./configure --with-openssl=$GITHUB_WORKSPACE/openssl-install - - # Build iperf - make -j - - - name: Generate RSA keys - run: | - export KEY_DIR=$GITHUB_WORKSPACE/test-keys - mkdir -p $KEY_DIR - cd $KEY_DIR - # Generate RSA keys for iperf tests - openssl genrsa -out rsa_private_unprotected.pem 2048 - openssl rsa -in rsa_private_unprotected.pem -out rsa_private.pem -aes256 -passout 'pass:password' - openssl rsa -in rsa_private.pem -pubout -out rsa_public.pem -passin 'pass:password' - # Create a credentials file for iperf - # Username: mario, Password: rossi - echo "mario,bf7a49a846d44b454a5d11e7acfaf13d138bbe0b7483aa3e050879700572709b" > credentials.csv - - - name: Run tests - working-directory: iperf - 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 - - # Test variables for iperf - export IPERF3_EXECUTABLE=$GITHUB_WORKSPACE/iperf/src/iperf3 - export IPERF3_TEST_INTERVAL=0.1 - export IPERF3_TEST_DURATION=10 - export IPERF3_TEST_LOG=iperf-test.log - export IPERF3_USER=mario - export IPERF3_PASSWORD=rossi - export KEY_DIR=$GITHUB_WORKSPACE/test-keys - - - # Verify IERF3_EXECUTABLE exists - if [ -f "$IPERF3_EXECUTABLE" ]; then - echo "iperf3 executable found: $IPERF3_EXECUTABLE" - else - echo "iperf3 executable not found: $IPERF3_EXECUTABLE" - echo "PWD: $PWD" - tree -L 2 - fi - - # Verify OpenSSL loads wolfProvider to confirm configuration above - # $GITHUB_WORKSPACE/openssl-install/bin/openssl list -providers | grep libwolfprov - - # Verify iperf loads OpenSSL containing wolfProvider - # ldd $IPERF3_EXECUTABLE | grep wolfProvider - - # Launch the iperf server in the background - $IPERF3_EXECUTABLE -s \ - --rsa-private-key-path $KEY_DIR/rsa_private_unprotected.pem \ - --authorized-users-path $KEY_DIR/credentials.csv & - - # Run the client - $IPERF3_EXECUTABLE -c localhost -i $IPERF3_TEST_INTERVAL -t $IPERF3_TEST_DURATION \ - --rsa-public-key-path $KEY_DIR/rsa_public.pem \ - --user $IPERF3_USER | tee $IPERF3_TEST_LOG \ - - diff --git a/.github/workflows/ipmitool.yml b/.github/workflows/ipmitool.yml deleted file mode 100644 index dd8d2358..00000000 --- a/.github/workflows/ipmitool.yml +++ /dev/null @@ -1,92 +0,0 @@ -name: IPMItool 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_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: - ipmitool_ref: [ 'master', 'c3939dac2c060651361fc71516806f9ab8c38901' ] - wolfssl_ref: [ 'master', 'v5.8.0-stable' ] - openssl_ref: [ 'openssl-3.5.0' ] - steps: - - name: Checkout wolfProvider - uses: actions/checkout@v4 - - - 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 dependencies - run: | - export DEBIAN_FRONTEND=noninteractive - sudo apt-get update - sudo apt-get install -y libreadline-dev - - - name: Build ipmitool with wolfProvider - uses: wolfSSL/actions-build-autotools-project@v1 - with: - repository: ipmitool/ipmitool - ref: ${{ matrix.ipmitool_ref }} - path: ipmitool - check: false - - - name: Confirm built with OpenSSL and test with wolfProvider - working-directory: ipmitool - run: | - # Setup 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 - - # Verify ipmitool was built and linked correctly with OpenSSL - ldd src/ipmitool | grep -E '(libssl|libcrypto)' - ldd src/ipmievd | grep -E '(libssl|libcrypto)' - - # Run a simple command to verify functionality - ./src/ipmitool -V diff --git a/.github/workflows/liboauth2.yml b/.github/workflows/liboauth2.yml deleted file mode 100644 index 68983ee3..00000000 --- a/.github/workflows/liboauth2.yml +++ /dev/null @@ -1,101 +0,0 @@ -name: liboauth2 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_liboauth2: - runs-on: ubuntu-22.04 - needs: build_wolfprovider - timeout-minutes: 20 - strategy: - matrix: - 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', ''] - steps: - - name: Checkout wolfProvider - uses: actions/checkout@v4 - - - 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 liboauth2 dependencies - run: | - sudo apt-get update - sudo apt-get install -y libssl-dev libcurl4-openssl-dev libjansson-dev \ - libcjose-dev pkg-config build-essential apache2-dev libhiredis-dev \ - libmemcached-dev autotools-dev autoconf automake libtool check - - - name: Checkout OSP - uses: actions/checkout@v4 - with: - repository: wolfssl/osp - path: osp - - - name: Build liboauth2 - run: | - git clone https://github.com/OpenIDC/liboauth2.git - cd liboauth2 - git checkout ${{ matrix.liboauth2_ref }} - patch -p1 < $GITHUB_WORKSPACE/osp/wolfProvider/liboauth2/liboauth2-${{ matrix.liboauth2_ref }}-wolfprov.patch - - autoreconf -fiv - ./configure - make -j$(nproc) - - - name: Run liboauth2 tests - working-directory: liboauth2 - 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 - export PKG_CONFIG_PATH=$GITHUB_WORKSPACE/openssl-install/lib64/pkgconfig - export ${{ matrix.force_fail }} - - # Build and run tests - make check 2>&1 | tee liboauth2-test.log - TEST_RESULT=$? - $GITHUB_WORKSPACE/.github/scripts/check-workflow-result.sh $TEST_RESULT ${{ matrix.force_fail }} liboauth2 diff --git a/.github/workflows/multi-compiler.yml b/.github/workflows/multi-compiler.yml deleted file mode 100644 index 38454135..00000000 --- a/.github/workflows/multi-compiler.yml +++ /dev/null @@ -1,114 +0,0 @@ -name: Multi-Compiler 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: - name: Build with ${{ matrix.CC }} - runs-on: ${{ matrix.OS }} - timeout-minutes: 20 - strategy: - fail-fast: false - matrix: - include: - - CC: gcc-9 - CXX: g++-9 - OS: ubuntu-latest - wolfssl_ref: master - - CC: gcc-10 - CXX: g++-10 - OS: ubuntu-latest - wolfssl_ref: master - - CC: gcc-10 - CXX: g++-10 - OS: ubuntu-latest - wolfssl_ref: v5.8.0-stable - - CC: gcc-11 - CXX: g++-11 - OS: ubuntu-latest - wolfssl_ref: master - - CC: gcc-12 - CXX: g++-12 - OS: ubuntu-latest - wolfssl_ref: master - - CC: clang-12 - CXX: clang++-12 - OS: ubuntu-22.04 - wolfssl_ref: master - - CC: clang-13 - CXX: clang++-13 - OS: ubuntu-22.04 - wolfssl_ref: master - - CC: clang-14 - CXX: clang++-14 - OS: ubuntu-latest - wolfssl_ref: master - - CC: clang-15 - CXX: clang++-15 - OS: ubuntu-latest - wolfssl_ref: master - steps: - - name: Checkout wolfProvider - uses: actions/checkout@v4 - - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install -y ${{ matrix.CC }} ${{ matrix.CXX }} automake libtool - - # 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 - id: wolfprov-cache - with: - path: | - wolfssl-source - wolfssl-install - wolfprov-install - provider.conf - - key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.CC }}-${{ 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-cache.outputs.cache-hit != 'true' - uses: actions/cache@v4 - id: openssl-cache - with: - path: | - openssl-source - openssl-install - - key: ossl-depends-${{ matrix.wolfssl_ref }}-${{ matrix.CC }}-${{ github.sha }} - lookup-only: true - - # If not yet built this version, build it now - - name: Build wolfProvider - if: steps.wolfprov-cache.outputs.cache-hit != 'true' - env: - CC: ${{ matrix.CC }} - CXX: ${{ matrix.CXX }} - run: | - WOLFSSL_TAG=${{ matrix.wolfssl_ref }} ./scripts/build-wolfprovider.sh - - - name: Print errors - if: ${{ failure() }} - run: | - if [ -f test-suite.log ]; then - cat test-suite.log - fi - if [ -f config.log ]; then - cat config.log - fi diff --git a/.github/workflows/net-snmp.yml b/.github/workflows/net-snmp.yml deleted file mode 100644 index 6ac35f37..00000000 --- a/.github/workflows/net-snmp.yml +++ /dev/null @@ -1,96 +0,0 @@ -name: Net-SNMP 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_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: - 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', ''] - steps: - - name: Checkout wolfProvider - uses: actions/checkout@v4 - - - 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 dependencies - run: | - sudo apt-get update - sudo apt-get install -y libperl-dev - - - name: Build net-snmp with wolfProvider - uses: wolfSSL/actions-build-autotools-project@v1 - with: - repository: net-snmp/net-snmp - ref: ${{ matrix.net_snmp_ref }} - path: net-snmp - configure: >- - --disable-shared --with-openssl=$GITHUB_WORKSPACE/openssl-install - --with-default-snmp-version="3" --with-sys-contact="@@no.where" - --with-sys-location="Unknown" --with-logfile="/var/log/snmpd.log" - --with-persistent-directory="/var/net-snmp" LDFLAGS="-L$GITHUB_WORKSPACE/openssl-install/lib64 -lcrypto -lssl" - CPPFLAGS="-I$GITHUB_WORKSPACE/openssl-install/include" LIBS="-lcrypto -lssl" - check: false - - - name: Run tests - working-directory: net-snmp - run: | - 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 }} - autoconf --version | grep -P '2\.\d\d' -o > dist/autoconf-version - mkdir -p tests - make -j test TESTOPTS="-e agentxperl" | tee tests/test.log - TEST_RESULT=$? - $GITHUB_WORKSPACE/.github/scripts/check-workflow-result.sh $TEST_RESULT ${{ matrix.force_fail }} net-snmp diff --git a/.github/workflows/nginx.yml b/.github/workflows/nginx.yml deleted file mode 100644 index 552b68a6..00000000 --- a/.github/workflows/nginx.yml +++ /dev/null @@ -1,104 +0,0 @@ -name: Nginx 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_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: - nginx_ref: [ 'master', 'release-1.27.4' ] - wolfssl_ref: [ 'master', 'v5.8.0-stable' ] - openssl_ref: [ 'openssl-3.5.0' ] - force_fail: [ 'WOLFPROV_FORCE_FAIL=1', ''] - exclude: - - nginx_ref: 'master' - force_fail: 'WOLFPROV_FORCE_FAIL=1' - steps: - - name: Checkout wolfProvider - uses: actions/checkout@v4 - - - 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 dependencies - run: | - sudo cpan -iT Proc::Find Net::SSLeay IO::Socket::SSL - - - name: Checkout nginx - uses: actions/checkout@v4 - with: - repository: nginx/nginx - path: nginx - ref: ${{ matrix.nginx_ref }} - - - name: Build nginx - working-directory: nginx - run: | - ./auto/configure --with-http_ssl_module --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_v2_module --with-mail --with-mail_ssl_module - make -j - - - name: Checkout nginx-tests - uses: actions/checkout@v4 - with: - repository: nginx/nginx-tests - path: nginx-tests - ref: master - - - name: Run nginx-tests with wolfProvider - working-directory: nginx-tests - 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 - export ${{ matrix.force_fail }} - - # Run tests and save result - TEST_NGINX_VERBOSE=y TEST_NGINX_CATLOG=y TEST_NGINX_BINARY=../nginx/objs/nginx prove -v . 2>&1 | tee nginx-test.log - TEST_RESULT=$? - $GITHUB_WORKSPACE/.github/scripts/check-workflow-result.sh $TEST_RESULT ${{ matrix.force_fail }} nginx diff --git a/.github/workflows/openldap.yml b/.github/workflows/openldap.yml deleted file mode 100644 index 6a320b70..00000000 --- a/.github/workflows/openldap.yml +++ /dev/null @@ -1,98 +0,0 @@ -name: OpenLDAP 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_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: - 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' ] - steps: - - name: Checkout wolfProvider - uses: actions/checkout@v4 - - - 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 dependencies - run: | - sudo apt-get update - sudo apt-get install -y libsasl2-dev - - - name: Checkout openldap - uses: actions/checkout@v4 - with: - repository: openldap/openldap - path: openldap - ref: ${{ matrix.openldap_ref }} - - - name: Build and test OpenLDAP with wolfProvider - working-directory: openldap - run: | - # Setup 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 - - # Generate configure script - rm -f aclocal.m4 - autoreconf -ivf - - # Configure with OpenSSL - ./configure --with-tls=openssl --disable-bdb --disable-hdb \ - CFLAGS="-I$GITHUB_WORKSPACE/openssl-install/include \ - -L$GITHUB_WORKSPACE/openssl-install/lib64" \ - LDFLAGS="-Wl,-rpath,$GITHUB_WORKSPACE/openssl-install/lib64" - - # Build OpenLDAP - make -j depend - make -j - make -j check diff --git a/.github/workflows/openssh.yml b/.github/workflows/openssh.yml deleted file mode 100644 index 2dc8aade..00000000 --- a/.github/workflows/openssh.yml +++ /dev/null @@ -1,107 +0,0 @@ -name: openssh 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_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: - wolfssl_ref: [ 'master', 'v5.8.0-stable' ] - openssl_ref: [ 'openssl-3.5.0' ] - openssh_ref: [ 'master', 'V_10_0_P2', 'V_9_9_P1' ] - force_fail: [ 'WOLFPROV_FORCE_FAIL=1', '' ] - exclude: - - openssh_ref: 'master' - force_fail: 'WOLFPROV_FORCE_FAIL=1' - steps: - - name: Checkout wolfProvider - uses: actions/checkout@v4 - - - 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: Checkout OSP - uses: actions/checkout@v4 - with: - repository: wolfssl/osp - path: osp - - - name: Checkout openssh - uses: actions/checkout@v4 - with: - repository: openssh/openssh-portable - path: openssh-portable - ref: ${{ matrix.openssh_ref }} - - - name: Build and Test openssh-portable - working-directory: openssh-portable - 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 - - # Apply the patch for the correct version of OpenSSH - if [ "${{ matrix.openssh_ref }}" != "master" ]; then - patch -p1 < $GITHUB_WORKSPACE/osp/wolfProvider/openssh/openssh-${{ matrix.openssh_ref }}-wolfprov.patch - else - # for master we need to supply the latest release version - patch -p1 < $GITHUB_WORKSPACE/osp/wolfProvider/openssh/openssh-V_10_0_P2-wolfprov.patch - fi - - autoreconf -ivf - ./configure --with-ssl-dir=$GITHUB_WORKSPACE/openssl-install \ - --with-rpath=-Wl,-rpath=$GITHUB_WORKSPACE/openssl-install/lib64 \ - --with-prngd-socket=/tmp/prngd - make -j - - # Run all the tests except (t-exec) as it takes too long - export ${{ matrix.force_fail }} - make file-tests interop-tests extra-tests unit 2>&1 | tee openssh-test.log - TEST_RESULT=$? - $GITHUB_WORKSPACE/.github/scripts/check-workflow-result.sh $TEST_RESULT ${{ matrix.force_fail }} openssh diff --git a/.github/workflows/openvpn.yml b/.github/workflows/openvpn.yml deleted file mode 100644 index d67a7421..00000000 --- a/.github/workflows/openvpn.yml +++ /dev/null @@ -1,96 +0,0 @@ -name: OpenVPN 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_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: - openvpn_ref: [ 'master', 'v2.6.12' ] - wolfssl_ref: [ 'master', 'v5.8.0-stable' ] - openssl_ref: [ 'openssl-3.5.0' ] - force_fail: ['WOLFPROV_FORCE_FAIL=1', ''] - exclude: - - openvpn_ref: 'master' - force_fail: 'WOLFPROV_FORCE_FAIL=1' - steps: - - name: Checkout wolfProvider - uses: actions/checkout@v4 - - - 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 test dependencies - run: | - sudo apt-get update - sudo apt-get install liblzo2-dev libpam0g-dev liblz4-dev libcap-ng-dev \ - linux-libc-dev man2html libcmocka-dev python3-docutils \ - libtool automake autoconf libnl-genl-3-dev libnl-genl-3-200 - - - name: Build and test OpenVPN - uses: wolfSSL/actions-build-autotools-project@v1 - with: - repository: OpenVPN/openvpn - path: openvpn - ref: ${{ matrix.openvpn_ref }} - configure: - check: false - - - name: Test OpenVPN with wolfProvider - working-directory: openvpn - 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 - export ${{ matrix.force_fail }} - - # Run tests and save result - make check 2>&1 | tee openvpn-test.log - TEST_RESULT=$? - $GITHUB_WORKSPACE/.github/scripts/check-workflow-result.sh $TEST_RESULT ${{ matrix.force_fail }} openvpn diff --git a/.github/workflows/simple.yml b/.github/workflows/simple.yml deleted file mode 100644 index 354a0277..00000000 --- a/.github/workflows/simple.yml +++ /dev/null @@ -1,73 +0,0 @@ -name: Simple 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: - simple_test: - name: Simple Test - runs-on: ubuntu-22.04 - timeout-minutes: 20 - strategy: - matrix: - openssl_ref: [ 'master', 'openssl-3.5.0' ] - wolfssl_ref: [ 'master', 'v5.8.0-stable' ] - force_fail: ['WOLFPROV_FORCE_FAIL=1', ''] - - steps: - - name: Checkout wolfProvider - uses: actions/checkout@v4 - - # 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 - id: wolfprov-cache - with: - path: | - wolfssl-source - wolfssl-install - wolfprov-install - provider.conf - - key: wolfprov-${{ matrix.wolfssl_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 - - - name: Run simple tests - run: | - ./scripts/cmd_test/do-cmd-tests.sh ${{ matrix.force_fail }} - - - name: Print test logs - if: always() - run: | - if [ -f test-suite.log ] ; then - cat test-suite.log - fi diff --git a/.github/workflows/socat.yml b/.github/workflows/socat.yml deleted file mode 100644 index 2c6960dc..00000000 --- a/.github/workflows/socat.yml +++ /dev/null @@ -1,96 +0,0 @@ -name: Socat 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_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: - wolfssl_ref: [ 'master', 'v5.8.0-stable' ] - openssl_ref: [ 'openssl-3.5.0' ] - steps: - - name: Checkout wolfProvider - uses: actions/checkout@v4 - - - 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 dependencies - run: | - sudo apt-get update - sudo apt-get install build-essential autoconf libtool pkg-config clang libc++-dev - - - name: Download socat - run: curl -O http://www.dest-unreach.org/socat/download/socat-1.8.0.0.tar.gz && tar xvf socat-1.8.0.0.tar.gz - - - name: Build socat - working-directory: ./socat-1.8.0.0 - run: | - # Configure with OpenSSL - ./configure --enable-openssl-base=$GITHUB_WORKSPACE/openssl-install - - # Build socat - make - - - name: Run socat tests - working-directory: ./socat-1.8.0.0 - 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 SHELL=/bin/bash - - # Verify OpenSSL loads wolfProvider - $GITHUB_WORKSPACE/openssl-install/bin/openssl list -providers - - # Show socat version (includes OpenSSL version info) - ./socat -V - - # Run the tests with expected failures - SOCAT=$GITHUB_WORKSPACE/socat-1.8.0.0/socat ./test.sh -t 0.5 --expect-fail 36,64,146,214,216,217,309,310,386,399,402,403,459,460,467,468,475,478,491,492,528,529,530 diff --git a/.github/workflows/sssd.yml b/.github/workflows/sssd.yml deleted file mode 100644 index 471bb65c..00000000 --- a/.github/workflows/sssd.yml +++ /dev/null @@ -1,112 +0,0 @@ -name: SSSD 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: - test_sssd: - runs-on: ubuntu-22.04 - timeout-minutes: 20 - container: - image: quay.io/sssd/ci-client-devel:ubuntu-latest - env: - LD_LIBRARY_PATH: /usr/local/lib:/github/home/wolfssl-install/lib:/github/home/openssl-install/lib64 - strategy: - fail-fast: false - matrix: - sssd_ref: [ 'master', '2.9.1' ] - wolfssl_ref: [ 'master', 'v5.8.0-stable' ] - openssl_ref: [ 'openssl-3.5.0' ] - force_fail: ['WOLFPROV_FORCE_FAIL=1', ''] - exclude: - - sssd_ref: 'master' - force_fail: 'WOLFPROV_FORCE_FAIL=1' - steps: - - name: Checkout wolfProvider - uses: actions/checkout@v4 - - # 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 - id: wolfprov-cache - with: - path: | - wolfssl-source - wolfssl-install - wolfprov-install - provider.conf - - key: wolfprov-${{ matrix.wolfssl_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 - - - name: Install dependencies - run: | - # Don't prompt for anything - export DEBIAN_FRONTEND=noninteractive - apt-get update - apt-get install -y build-essential autoconf libldb-dev \ - libldb2 python3-ldb bc libcap-dev libutf8proc-dev - - - name: Setup env - run: | - ln -s samba-4.0/ldb.h /usr/include/ldb.h - ln -s samba-4.0/ldb_errors.h /usr/include/ldb_errors.h - ln -s samba-4.0/ldb_handlers.h /usr/include/ldb_handlers.h - ln -s samba-4.0/ldb_module.h /usr/include/ldb_module.h - ln -s samba-4.0/ldb_version.h /usr/include/ldb_version.h - - - name: Build and test sssd with wolfProvider - run: | - # Clone SSSD - git clone https://github.com/SSSD/sssd.git - cd sssd - git checkout ${{ matrix.sssd_ref }} - - # Configure and build SSSD with wolfProvider - autoreconf -ivf - ./configure --without-samba --disable-cifs-idmap-plugin \ - --without-nfsv4-idmapd-plugin --with-oidc-child=no - make -j - - - 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 - export ${{ matrix.force_fail }} - - # Run tests and save result - make check 2>&1 | tee sssd-test.log - TEST_RESULT=$? - $GITHUB_WORKSPACE/.github/scripts/check-workflow-result.sh $TEST_RESULT ${{ matrix.force_fail }} sssd diff --git a/.github/workflows/stunnel.yml b/.github/workflows/stunnel.yml deleted file mode 100644 index 8ca3d42f..00000000 --- a/.github/workflows/stunnel.yml +++ /dev/null @@ -1,110 +0,0 @@ -name: Stunnel 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_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: - stunnel_ref: [ 'master', 'stunnel-5.67' ] - wolfssl_ref: [ 'master', 'v5.8.0-stable' ] - openssl_ref: [ 'openssl-3.5.0' ] - force_fail: ['WOLFPROV_FORCE_FAIL=1', ''] - exclude: - - stunnel_ref: 'master' - force_fail: 'WOLFPROV_FORCE_FAIL=1' - steps: - - name: Checkout wolfProvider - uses: actions/checkout@v4 - - - 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 dependencies - run: | - sudo apt-get update - sudo apt-get install -y build-essential autoconf automake \ - libtool pkg-config libwrap0-dev autoconf-archive \ - autotools-dev m4 - - - name: Checkout OSP - uses: actions/checkout@v4 - with: - repository: wolfssl/osp - path: osp - - - name: Build Stunnel - run: | - git clone https://github.com/mtrojnar/stunnel.git - cd stunnel - git checkout ${{ matrix.stunnel_ref }} - if [ ${{ matrix.force_fail }} != '' ]; then - patch -p1 < $GITHUB_WORKSPACE/osp/wolfProvider/stunnel/stunnel-WPFF-5.67-wolfprov.patch - fi - autoreconf -ivf - ./configure --with-ssl=$GITHUB_WORKSPACE/openssl-install/ - make -j - - - name: Verify stunnel with wolfProvider - working-directory: ./stunnel - run: | - # Setup 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 - export ${{ matrix.force_fail }} - - # Verify stunnel - ldd src/stunnel | grep -E '(libssl|libcrypto)' - ./src/stunnel -version - - # Run tests and capture output - mkdir -p $GITHUB_WORKSPACE/tests - make check 2>&1 | tee $GITHUB_WORKSPACE/tests/stunnel-test.log - TEST_RESULT=$? - $GITHUB_WORKSPACE/.github/scripts/check-workflow-result.sh $TEST_RESULT ${{ matrix.force_fail }} stunnel