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
109 changes: 109 additions & 0 deletions .github/workflows/cjose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
name: cjose 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:
Comment thread
aidangarske marked this conversation as resolved.
Outdated
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_cjose:
runs-on: ubuntu-22.04
needs: build_wolfprovider
# This should be a safe limit for the tests to run.
timeout-minutes: 20
strategy:
matrix:
cjose_ref: [ 'master', 'v0.6.2.1' ]
wolfssl_ref: [ 'master', 'v5.8.0-stable' ]
openssl_ref: [ 'openssl-3.5.0' ]
force_fail: [ 'WOLFPROV_FORCE_FAIL=1', '' ]
steps:
# Checkout the source so we can run the check-workflow-result script
- name: Checkout wolfProvider
uses: actions/checkout@v4
with:
sparse-checkout: |
.github

- 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 cjose dependencies
run: |
sudo apt-get update
sudo apt-get install build-essential autoconf libtool pkg-config clang libc++-dev
sudo apt-get install libjansson-dev check

- name: Download cjose
uses: actions/checkout@v4
with:
repository: OpenIDC/cjose
ref: ${{ matrix.cjose_ref }}
path: cjose

- name: Build cjose
working-directory: cjose
run: |
# Configure with OpenSSL
./configure CFLAGS="-Wno-error=deprecated-declarations" --with-openssl=/git/wolfProvider/openssl-install

# Build cjose
make

- name: Run cjose tests
working-directory: cjose
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

# Verify OpenSSL loads wolfProvider
$GITHUB_WORKSPACE/openssl-install/bin/openssl list -providers | grep libwolfprov
Comment thread
aidangarske marked this conversation as resolved.
Outdated

# Run tests
make test || true

# Capture result
TEST_RESULT=$(tail -1 ./test/check_cjose.log | grep PASS; echo $?)
Comment thread
aidangarske marked this conversation as resolved.
Outdated
$GITHUB_WORKSPACE/.github/scripts/check-workflow-result.sh $TEST_RESULT ${{ matrix.force_fail }} cjose