Skip to content
Closed
Show file tree
Hide file tree
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
36 changes: 21 additions & 15 deletions .github/workflows/build-wolfprovider.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ name: Build wolfProvider
on:
workflow_call:
inputs:
os_ref:
required: true
type: string
wolfssl_ref:
required: true
type: string
Expand All @@ -17,14 +20,14 @@ on:
jobs:
build_wolfprovider_common:
name: Build wolfProvider
runs-on: ubuntu-22.04
runs-on: ${{ inputs.os_ref }}
timeout-minutes: 20
outputs:
cache_key: wolfprov-${{ inputs.wolfssl_ref }}-${{ inputs.openssl_ref }}-${{ github.sha }}
cache_key: wolfprov-${{ inputs.os_ref }}-${{ inputs.wolfssl_ref }}-${{ inputs.openssl_ref }}-${{ github.sha }}
steps:
# Check if this version of wolfssl/wolfprovider has already been built,
# mark to cache these items on post if we do end up building
# On a push, the first workflow(s) will complete the build and cache it
# On a push, the first workflow(s) will complete the build and cache it
# and any delayed workflow will be able to utilize it.
# This is not designed to cache builds across commits.
- name: Checking wolfSSL/wolfProvider in cache
Expand All @@ -39,7 +42,7 @@ jobs:
openssl-install
provider.conf

key: wolfprov-${{ inputs.wolfssl_ref }}-${{ inputs.openssl_ref }}-${{ github.sha }}
key: wolfprov-${{ inputs.os_ref }}-${{ inputs.wolfssl_ref }}-${{ inputs.openssl_ref }}-${{ github.sha }}
lookup-only: true

# if cache hit, exit the workflow
Expand Down Expand Up @@ -78,7 +81,7 @@ jobs:
openssl-source
openssl-install

key: ossl-depends-${{ steps.openssl-ref.outputs.ref }}
key: ossl-depends-${{ inputs.os_ref }}-${{ steps.openssl-ref.outputs.ref }}
lookup-only: false

# Convert WolfSSL branch name to commit hash if needed
Expand All @@ -104,48 +107,51 @@ jobs:
wolfssl-source
wolfssl-install

key: wolfssl-depends-${{ steps.wolfssl-ref.outputs.ref }}
key: wolfssl-depends-${{ inputs.os_ref }}-${{ steps.wolfssl-ref.outputs.ref }}
lookup-only: false

- name: Build wolfProvider
if: steps.wolfprov-cache.outputs.cache-hit != 'true'
run: |
OPENSSL_TAG=${{ inputs.openssl_ref }} WOLFSSL_TAG=${{ inputs.wolfssl_ref }} ./scripts/build-wolfprovider.sh
if [ "${{ inputs.os_ref }}" = "ubuntu-24.04-arm" ]; then
export OPENSSL_ARCH="linux-aarch64"
fi
OPENSSL_TAG=${{ inputs.openssl_ref }} WOLFSSL_TAG=${{ inputs.wolfssl_ref }} WOLFPROV_DEBUG=1 ./scripts/build-wolfprovider.sh

# This is potentially chewing up a lot of cache space.
# This is potentially chewing up a lot of cache space.
# Could investigate reducing the size of this cache.
# Note that we use actions/cache/save and actions/cache/restore instead of
# Note that we use actions/cache/save and actions/cache/restore instead of
# actions/cache to reduce the chance of a cache lock issue.
- name: Save wolfProvider into cache
if: steps.wolfprov-cache.outputs.cache-hit != 'true'
uses: actions/cache/save@v4
with:
with:
path: |
wolfssl-source
wolfssl-install
wolfprov-install
openssl-install
provider.conf
key: wolfprov-${{ inputs.wolfssl_ref }}-${{ inputs.openssl_ref }}-${{ github.sha }}
key: wolfprov-${{ inputs.os_ref }}-${{ inputs.wolfssl_ref }}-${{ inputs.openssl_ref }}-${{ github.sha }}

# If openssl cache miss, save it to the cache
- name: Save OpenSSL into cache
if: steps.openssl-cache.outputs.cache-hit != 'true'
uses: actions/cache/save@v4
with:
with:
path: |
openssl-source
openssl-install
key: ossl-depends-${{ steps.openssl-ref.outputs.ref }}
key: ossl-depends-${{ inputs.os_ref }}-${{ steps.openssl-ref.outputs.ref }}

- name: Save WolfSSL into cache
if: steps.wolfssl-cache.outputs.cache-hit != 'true'
uses: actions/cache/save@v4
with:
with:
path: |
wolfssl-source
wolfssl-install
key: wolfssl-depends-${{ steps.wolfssl-ref.outputs.ref }}
key: wolfssl-depends-${{ inputs.os_ref }}-${{ steps.wolfssl-ref.outputs.ref }}

- name: Print errors
if: ${{ failure() }}
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/cjose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,24 +16,27 @@ jobs:
build_wolfprovider:
uses: ./.github/workflows/build-wolfprovider.yml
with:
os_ref: ${{ matrix.os_ref }}
wolfssl_ref: ${{ matrix.wolfssl_ref }}
openssl_ref: ${{ matrix.openssl_ref }}
strategy:
matrix:
os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ]
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:
os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ]
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', '' ]
runs-on: ${{ matrix.os_ref }}
steps:
- name: Checkout wolfProvider
uses: actions/checkout@v4
Expand All @@ -52,7 +55,7 @@ jobs:
openssl-install
provider.conf

key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }}
key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }}
fail-on-cache-miss: true

- name: Install cjose dependencies
Expand Down
7 changes: 6 additions & 1 deletion .github/workflows/codespell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,16 @@ concurrency:
jobs:
codespell:
name: Check for spelling errors
runs-on: ubuntu-22.04
strategy:
matrix:
os: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ]
runs-on: ${{ matrix.os }}
timeout-minutes: 5
steps:
- name: Checkout wolfProvider
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Create exclude file if needed
run: |
Expand Down
9 changes: 6 additions & 3 deletions .github/workflows/curl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,33 +16,36 @@ jobs:
build_wolfprovider:
uses: ./.github/workflows/build-wolfprovider.yml
with:
os_ref: ${{ matrix.os_ref }}
wolfssl_ref: ${{ matrix.wolfssl_ref }}
openssl_ref: ${{ matrix.openssl_ref }}
strategy:
matrix:
os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ]
wolfssl_ref: [ 'master', 'v5.8.0-stable' ]
openssl_ref: [ 'openssl-3.5.0' ]

test_curl:
runs-on: ubuntu-22.04
needs: build_wolfprovider
# This should be a safe limit for the tests to run.
timeout-minutes: 20
strategy:
matrix:
os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ]
curl_ref: [ 'master', 'curl-8_4_0' ]
wolfssl_ref: [ 'master', 'v5.8.0-stable' ]
openssl_ref: [ 'openssl-3.5.0' ]
force_fail: ['WOLFPROV_FORCE_FAIL=1', '']
exclude:
- curl_ref: 'master'
force_fail: 'WOLFPROV_FORCE_FAIL=1'
runs-on: ${{ matrix.os_ref }}
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
Expand All @@ -55,7 +58,7 @@ jobs:
openssl-install
provider.conf

key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }}
key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }}
fail-on-cache-miss: true

- name: Install dependencies
Expand Down
10 changes: 6 additions & 4 deletions .github/workflows/grpc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,23 @@ jobs:
build_wolfprovider:
uses: ./.github/workflows/build-wolfprovider.yml
with:
os_ref: ${{ matrix.os_ref }}
wolfssl_ref: ${{ matrix.wolfssl_ref }}
openssl_ref: ${{ matrix.openssl_ref }}
strategy:
matrix:
os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ]
wolfssl_ref: [ 'master', 'v5.8.0-stable' ]
openssl_ref: [ 'openssl-3.5.0' ]

test_grpc:
runs-on: ubuntu-22.04
needs: build_wolfprovider
# This should be a safe limit for the tests to run.
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ]
include:
- grpc_ref: v1.60.0 # TODO: Add master
tests: >-
Expand All @@ -41,12 +43,13 @@ jobs:
h2_ssl_cert_test h2_ssl_session_reuse_test
wolfssl_ref: [ 'master', 'v5.8.0-stable' ]
openssl_ref: [ 'openssl-3.5.0' ]
runs-on: ${{ matrix.os_ref }}
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
Expand All @@ -59,7 +62,7 @@ jobs:
openssl-install
provider.conf

key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }}
key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }}
fail-on-cache-miss: true

- name: Confirm IPv4 and IPv6 support
Expand Down Expand Up @@ -89,7 +92,6 @@ jobs:
run: |
# Set up the environment for wolfProvider
source $GITHUB_WORKSPACE/scripts/env-setup
export ${{ matrix.force_fail }}

# Initialize submodules
git submodule update --init
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/iperf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,24 +16,27 @@ jobs:
build_wolfprovider:
uses: ./.github/workflows/build-wolfprovider.yml
with:
os_ref: ${{ matrix.os_ref }}
wolfssl_ref: ${{ matrix.wolfssl_ref }}
openssl_ref: ${{ matrix.openssl_ref }}
strategy:
matrix:
os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ]
wolfssl_ref: [ 'master', 'v5.8.0-stable' ]
openssl_ref: [ 'openssl-3.5.0' ]

test_iperf:
runs-on: ubuntu-22.04
needs: build_wolfprovider
# This should be a safe limit for the tests to run.
timeout-minutes: 20
strategy:
matrix:
os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ]
wolfssl_ref: [ 'master', 'v5.8.0-stable' ]
openssl_ref: [ 'openssl-3.5.0' ]
iperf_ref: [ 'master', '3.12' ]
force_fail: ['WOLFPROV_FORCE_FAIL=1', '']
runs-on: ${{ matrix.os_ref }}
steps:
- name: Checkout wolfProvider
uses: actions/checkout@v4
Expand All @@ -52,7 +55,7 @@ jobs:
openssl-install
provider.conf

key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }}
key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }}
fail-on-cache-miss: true

- name: Install dependencies
Expand Down
8 changes: 5 additions & 3 deletions .github/workflows/ipmitool.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,24 +16,27 @@ jobs:
build_wolfprovider:
uses: ./.github/workflows/build-wolfprovider.yml
with:
os_ref: ${{ matrix.os_ref }}
wolfssl_ref: ${{ matrix.wolfssl_ref }}
openssl_ref: ${{ matrix.openssl_ref }}
strategy:
matrix:
os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ]
wolfssl_ref: [ 'master', 'v5.8.0-stable' ]
openssl_ref: [ 'openssl-3.5.0' ]

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:
os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ]
ipmitool_ref: [ 'master', 'IPMITOOL_1_8_19' ]
wolfssl_ref: [ 'master', 'v5.8.0-stable' ]
openssl_ref: [ 'openssl-3.5.0' ]
runs-on: ${{ matrix.os_ref }}
steps:
- name: Checkout wolfProvider
uses: actions/checkout@v4
Expand All @@ -52,7 +55,7 @@ jobs:
openssl-install
provider.conf

key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }}
key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }}
fail-on-cache-miss: true

- name: Install dependencies
Expand All @@ -74,7 +77,6 @@ jobs:
run: |
# Set up the environment for wolfProvider
source $GITHUB_WORKSPACE/scripts/env-setup
export ${{ matrix.force_fail }}

# Verify ipmitool was built and linked correctly with OpenSSL
ldd src/ipmitool | grep -E '(libssl|libcrypto)'
Expand Down
9 changes: 6 additions & 3 deletions .github/workflows/liboauth2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,29 +16,32 @@ jobs:
build_wolfprovider:
uses: ./.github/workflows/build-wolfprovider.yml
with:
os_ref: ${{ matrix.os_ref }}
wolfssl_ref: ${{ matrix.wolfssl_ref }}
openssl_ref: ${{ matrix.openssl_ref }}
strategy:
matrix:
os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ]
wolfssl_ref: [ 'master', 'v5.8.0-stable' ]
openssl_ref: [ 'openssl-3.5.0' ]

test_liboauth2:
runs-on: ubuntu-22.04
needs: build_wolfprovider
timeout-minutes: 20
strategy:
matrix:
os_ref: [ 'ubuntu-22.04', 'ubuntu-24.04-arm' ]
liboauth2_ref: [ 'v1.4.5.4' ] # No master with patch
wolfssl_ref: [ 'master', 'v5.8.0-stable' ]
openssl_ref: [ 'openssl-3.5.0' ]
force_fail: ['WOLFPROV_FORCE_FAIL=1', '']
runs-on: ${{ matrix.os_ref }}
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
Expand All @@ -51,7 +54,7 @@ jobs:
openssl-install
provider.conf

key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }}
key: wolfprov-${{ matrix.os_ref }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }}
fail-on-cache-miss: true

- name: Install liboauth2 dependencies
Expand Down
Loading
Loading