Skip to content

Fix for failing ipmitool and grpc without WPFF #129

Fix for failing ipmitool and grpc without WPFF

Fix for failing ipmitool and grpc without WPFF #129

Workflow file for this run

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:
name: Build wolfProvider
runs-on: ubuntu-22.04
timeout-minutes: 20
strategy:
matrix:
wolfssl_ref: [ 'master', 'v5.7.4-stable' ]
openssl_ref: [ 'openssl-3.2.0' ]
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-cache.outputs.cache-hit != 'true'
uses: actions/cache@v4
id: openssl-cache
with:
path: |
openssl-source
openssl-install
key: ossl-depends-${{ matrix.openssl_ref }}
fail-on-cache-miss: false
# If not yet built this version, build it now
- name: Build wolfProvider
if: steps.wolfprov-cache.outputs.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
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.7.4-stable' ]
openssl_ref: [ 'openssl-3.2.0' ]
steps:
- 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 }}
fail-on-cache-miss: false
- 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 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
# 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