From fdbc4589bbe2efcbda00bc2d8b2ac7f9e46e3d1a Mon Sep 17 00:00:00 2001 From: Colton Willey Date: Tue, 5 Aug 2025 11:52:45 -0700 Subject: [PATCH 1/4] Add KRB5 workflow --- .github/workflows/krb5.yml | 106 +++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 .github/workflows/krb5.yml diff --git a/.github/workflows/krb5.yml b/.github/workflows/krb5.yml new file mode 100644 index 00000000..bab6c5ca --- /dev/null +++ b/.github/workflows/krb5.yml @@ -0,0 +1,106 @@ +name: KRB5 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_krb5: + runs-on: ubuntu-22.04 + needs: build_wolfprovider + # This should be a safe limit for the tests to run. + timeout-minutes: 30 + strategy: + matrix: + krb5_ref: [ 'krb5-1.20.1-final' ] + 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 + with: + fetch-depth: 1 + + - name: Retrieving wolfSSL/wolfProvider from cache + uses: actions/cache/restore@v4 + id: wolfprov-cache + with: + path: | + wolfssl-install + wolfprov-install + openssl-install/lib64 + openssl-install/include + openssl-install/bin + key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }} + fail-on-cache-miss: true + + - name: Install KRB5 dependencies + run: | + sudo apt-get update + sudo apt-get install -y \ + build-essential autoconf automake libtool \ + bison flex libldap2-dev libkeyutils-dev \ + libverto-dev libcom-err2 comerr-dev \ + libss2 ss-dev + + - name: Checkout OSP + uses: actions/checkout@v4 + with: + repository: wolfssl/osp + path: osp + fetch-depth: 1 + + - name: Checkout KRB5 + uses: actions/checkout@v4 + with: + repository: krb5/krb5 + path: krb5 + ref: ${{ matrix.krb5_ref }} + fetch-depth: 1 + + - name: Build and test KRB5 with wolfProvider + working-directory: krb5 + run: | + # Apply the wolfProvider patch + patch -p1 < $GITHUB_WORKSPACE/osp/wolfProvider/krb5/krb5-1.20.1-final-wolfprov.patch + + # Build KRB5 + cd src + autoreconf -fiv + ./configure \ + --prefix=$GITHUB_WORKSPACE/krb5-install \ + --with-crypto-impl=openssl \ + --with-openssl=$GITHUB_WORKSPACE/openssl-install \ + --disable-pkinit \ + CFLAGS="-I$GITHUB_WORKSPACE/openssl-install/include" \ + LDFLAGS="-L$GITHUB_WORKSPACE/openssl-install/lib64 -Wl,-rpath=$GITHUB_WORKSPACE/openssl-install/lib64" + + make -j$(nproc) + make install + + source $GITHUB_WORKSPACE/scripts/env-setup + export ${{ matrix.force_fail }} + + # Run tests and save output + make check 2>&1 | tee krb5-test.log + TEST_RESULT=${PIPESTATUS[0]} + $GITHUB_WORKSPACE/.github/scripts/check-workflow-result.sh $TEST_RESULT ${{ matrix.force_fail }} krb5 From 3d907e73221dc2cdf8ff34a506c7dd6c5087dc6d Mon Sep 17 00:00:00 2001 From: Colton Willey Date: Tue, 5 Aug 2025 12:03:01 -0700 Subject: [PATCH 2/4] Proper newline ending for workflow --- .github/workflows/krb5.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/krb5.yml b/.github/workflows/krb5.yml index bab6c5ca..9c65fe1a 100644 --- a/.github/workflows/krb5.yml +++ b/.github/workflows/krb5.yml @@ -104,3 +104,4 @@ jobs: make check 2>&1 | tee krb5-test.log TEST_RESULT=${PIPESTATUS[0]} $GITHUB_WORKSPACE/.github/scripts/check-workflow-result.sh $TEST_RESULT ${{ matrix.force_fail }} krb5 + From fa6c0aea14dee8ba521dcb6f8b54992e51aea9c9 Mon Sep 17 00:00:00 2001 From: Colton Willey Date: Mon, 11 Aug 2025 11:42:05 -0700 Subject: [PATCH 3/4] Group OSP checkout and patching together --- .github/workflows/krb5.yml | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/.github/workflows/krb5.yml b/.github/workflows/krb5.yml index 9c65fe1a..a3a30926 100644 --- a/.github/workflows/krb5.yml +++ b/.github/workflows/krb5.yml @@ -61,14 +61,7 @@ jobs: bison flex libldap2-dev libkeyutils-dev \ libverto-dev libcom-err2 comerr-dev \ libss2 ss-dev - - - name: Checkout OSP - uses: actions/checkout@v4 - with: - repository: wolfssl/osp - path: osp - fetch-depth: 1 - + - name: Checkout KRB5 uses: actions/checkout@v4 with: @@ -77,12 +70,20 @@ jobs: ref: ${{ matrix.krb5_ref }} fetch-depth: 1 - - name: Build and test KRB5 with wolfProvider - working-directory: krb5 + - name: Checkout OSP + uses: actions/checkout@v4 + with: + repository: wolfssl/osp + path: osp + fetch-depth: 1 run: | + cd krb5 # Apply the wolfProvider patch patch -p1 < $GITHUB_WORKSPACE/osp/wolfProvider/krb5/krb5-1.20.1-final-wolfprov.patch + - name: Build and test KRB5 with wolfProvider + working-directory: krb5 + run: | # Build KRB5 cd src autoreconf -fiv From 6f4142ccc9607b83a6d85311fb55b64b1cf43fc9 Mon Sep 17 00:00:00 2001 From: Colton Willey Date: Mon, 11 Aug 2025 11:47:40 -0700 Subject: [PATCH 4/4] Fix workflow file --- .github/workflows/krb5.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/krb5.yml b/.github/workflows/krb5.yml index a3a30926..de0a5d0c 100644 --- a/.github/workflows/krb5.yml +++ b/.github/workflows/krb5.yml @@ -76,7 +76,7 @@ jobs: repository: wolfssl/osp path: osp fetch-depth: 1 - run: | + - run: | cd krb5 # Apply the wolfProvider patch patch -p1 < $GITHUB_WORKSPACE/osp/wolfProvider/krb5/krb5-1.20.1-final-wolfprov.patch