Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 108 additions & 0 deletions .github/workflows/krb5.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
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 KRB5
uses: actions/checkout@v4
with:
repository: krb5/krb5
path: krb5
ref: ${{ matrix.krb5_ref }}
fetch-depth: 1

- 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
./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

Loading