From b7d948c9442d1e27d3837623cdd990ae558c1104 Mon Sep 17 00:00:00 2001 From: ruiliio Date: Tue, 15 Apr 2025 15:18:37 -0700 Subject: [PATCH 1/3] Add openssh workflow for wolfprovider --- .github/workflows/openssh.yml | 131 ++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 .github/workflows/openssh.yml diff --git a/.github/workflows/openssh.yml b/.github/workflows/openssh.yml new file mode 100644 index 00000000..f5a6b5cc --- /dev/null +++ b/.github/workflows/openssh.yml @@ -0,0 +1,131 @@ +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: + name: Build wolfProvider + runs-on: ubuntu-22.04 + timeout-minutes: 20 + strategy: + matrix: + wolfssl_ref: [ 'master', 'v5.7.4-stable' ] + 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 + + # If not yet built this version, build it now + - name: Build wolfProvider + if: steps.wolfprov-${{ matrix.wolfssl_ref }}-cache.hit != 'true' + 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 + + + openssh_check: + runs-on: ubuntu-22.04 + needs: build_wolfprovider + # This should be a safe limit for the tests to run. + timeout-minutes: 20 + + steps: + - name: Retrieving OpenSSL from cache + uses: actions/cache/restore@v4 + id: openssl-cache + with: + path: | + openssl-source + openssl-install + + key: ossl-depends + 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 + + # move the patch file to wolf prov ? + - name: Build openssh-portable + working-directory: openssh-portable + run: | + echo "about to echo" + echo $GITHUB_WORKSPACE + echo "about to ls" + ls $GITHUB_WORKSPACE + patch -p1 < $GITHUB_WORKSPACE/osp/wolfProvider/openssh/openssh-9.9.p1-wolfprov.patch + autoreconf + ./configure + make -j + + - name: Test openssh with wolfProvider + working-directory: openssh-portable + 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 + # Run all the tests except (t-exec) as it takes too long + make file-tests interop-tests extra-tests unit \ No newline at end of file From a1b88619a8dab0bfe433c07996bec2c084ba7403 Mon Sep 17 00:00:00 2001 From: ruiliio Date: Tue, 15 Apr 2025 16:53:38 -0700 Subject: [PATCH 2/3] update openssh workflow with wolfssl_ref for wolfprovider --- .github/workflows/openssh.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/openssh.yml b/.github/workflows/openssh.yml index f5a6b5cc..bda5db64 100644 --- a/.github/workflows/openssh.yml +++ b/.github/workflows/openssh.yml @@ -70,7 +70,9 @@ jobs: needs: build_wolfprovider # This should be a safe limit for the tests to run. timeout-minutes: 20 - + strategy: + matrix: + wolfssl_ref: [ 'master', 'v5.7.4-stable' ] steps: - name: Retrieving OpenSSL from cache uses: actions/cache/restore@v4 From f6f6ecf3918ca5455139f8fbdc182e8ad4260536 Mon Sep 17 00:00:00 2001 From: ruiliio Date: Tue, 15 Apr 2025 18:00:40 -0700 Subject: [PATCH 3/3] Final openssh workflow for wolfprovider --- .github/workflows/openssh.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/openssh.yml b/.github/workflows/openssh.yml index bda5db64..b08637e9 100644 --- a/.github/workflows/openssh.yml +++ b/.github/workflows/openssh.yml @@ -64,7 +64,6 @@ jobs: cat test-suite.log fi - openssh_check: runs-on: ubuntu-22.04 needs: build_wolfprovider @@ -110,14 +109,9 @@ jobs: repository: openssh/openssh-portable path: openssh-portable - # move the patch file to wolf prov ? - name: Build openssh-portable working-directory: openssh-portable run: | - echo "about to echo" - echo $GITHUB_WORKSPACE - echo "about to ls" - ls $GITHUB_WORKSPACE patch -p1 < $GITHUB_WORKSPACE/osp/wolfProvider/openssh/openssh-9.9.p1-wolfprov.patch autoreconf ./configure @@ -130,4 +124,4 @@ jobs: export OPENSSL_CONF=$GITHUB_WORKSPACE/provider.conf export OPENSSL_MODULES=$GITHUB_WORKSPACE/wolfprov-install/lib # Run all the tests except (t-exec) as it takes too long - make file-tests interop-tests extra-tests unit \ No newline at end of file + make file-tests interop-tests extra-tests unit