mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-01-18 21:24:54 +00:00
168 lines
5.8 KiB
YAML
168 lines
5.8 KiB
YAML
name: Ubuntu-Macos-Windows 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:
|
|
make_check:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-22.04, macos-latest ]
|
|
config: [
|
|
# Add new configs here
|
|
'',
|
|
'--enable-all --enable-asn=template',
|
|
'--enable-all --enable-asn=original',
|
|
'--enable-harden-tls',
|
|
'--enable-tls13 --enable-session-ticket --enable-dtls --enable-dtls13
|
|
--enable-opensslextra --enable-sessioncerts
|
|
CPPFLAGS=''-DWOLFSSL_DTLS_NO_HVR_ON_RESUME -DHAVE_EXT_CACHE
|
|
-DWOLFSSL_TICKET_HAVE_ID -DHAVE_EX_DATA -DSESSION_CACHE_DYNAMIC_MEM'' ',
|
|
'--enable-all --enable-secure-renegotiation',
|
|
'--enable-all --enable-haproxy --enable-quic',
|
|
'--enable-dtls --enable-dtls13 --enable-earlydata
|
|
--enable-session-ticket --enable-psk
|
|
CPPFLAGS=''-DWOLFSSL_DTLS13_NO_HRR_ON_RESUME'' ',
|
|
'--enable-experimental --enable-kyber --enable-dtls --enable-dtls13
|
|
--enable-dtls-frag-ch',
|
|
'--enable-all --enable-dtls13 --enable-dtls-frag-ch',
|
|
'--enable-dtls --enable-dtls13 --enable-dtls-frag-ch
|
|
--enable-dtls-mtu',
|
|
'--enable-dtls --enable-dtlscid --enable-dtls13 --enable-secure-renegotiation
|
|
--enable-psk --enable-aesccm --enable-nullcipher CPPFLAGS=-DWOLFSSL_STATIC_RSA',
|
|
]
|
|
name: make check
|
|
if: github.repository_owner == 'wolfssl'
|
|
runs-on: ${{ matrix.os }}
|
|
# This should be a safe limit for the tests to run.
|
|
timeout-minutes: 14
|
|
steps:
|
|
- name: Build and test wolfSSL
|
|
uses: wolfSSL/actions-build-autotools-project@v1
|
|
with:
|
|
configure: ${{ matrix.config }}
|
|
check: true
|
|
|
|
make_user_settings:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-22.04, macos-latest ]
|
|
user-settings: [
|
|
# Add new user_settings.h here
|
|
'examples/configs/user_settings_all.h',
|
|
]
|
|
name: make user_setting.h
|
|
if: github.repository_owner == 'wolfssl'
|
|
runs-on: ${{ matrix.os }}
|
|
# This should be a safe limit for the tests to run.
|
|
timeout-minutes: 14
|
|
steps:
|
|
- name: Build and test wolfSSL
|
|
uses: wolfSSL/actions-build-autotools-project@v1
|
|
with:
|
|
configure: --enable-usersettings
|
|
check: true
|
|
user-settings: ${{ matrix.user-settings }}
|
|
|
|
make_user_settings_testwolfcrypt:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-22.04, macos-latest ]
|
|
user-settings: [
|
|
# Add new user_settings.h here
|
|
'examples/configs/user_settings_min_ecc.h',
|
|
'examples/configs/user_settings_wolfboot_keytools.h',
|
|
'examples/configs/user_settings_wolftpm.h',
|
|
'examples/configs/user_settings_wolfssh.h',
|
|
'examples/configs/user_settings_tls12.h',
|
|
]
|
|
name: make user_setting.h (testwolfcrypt only)
|
|
if: github.repository_owner == 'wolfssl'
|
|
runs-on: ${{ matrix.os }}
|
|
# This should be a safe limit for the tests to run.
|
|
timeout-minutes: 14
|
|
steps:
|
|
- name: Build and test wolfSSL
|
|
uses: wolfSSL/actions-build-autotools-project@v1
|
|
with:
|
|
configure: --enable-usersettings --disable-examples
|
|
check: false
|
|
user-settings: ${{ matrix.user-settings }}
|
|
|
|
- name: Run wolfcrypt/test/testwolfcrypt
|
|
run: ./wolfcrypt/test/testwolfcrypt
|
|
|
|
# Has to be dedicated function due to the sed call
|
|
make_user_all:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-22.04, macos-latest ]
|
|
name: make user_setting.h (with sed)
|
|
if: github.repository_owner == 'wolfssl'
|
|
runs-on: ${{ matrix.os }}
|
|
# This should be a safe limit for the tests to run.
|
|
timeout-minutes: 14
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- if: ${{ matrix.os == 'macos-latest' }}
|
|
run: brew install automake libtool
|
|
- run: ./autogen.sh
|
|
- name: user_settings_all.h with compatibility layer
|
|
run: |
|
|
cp ./examples/configs/user_settings_all.h user_settings.h
|
|
sed -i -e "s/if 0/if 1/" user_settings.h
|
|
./configure --enable-usersettings
|
|
make
|
|
make check
|
|
|
|
windows_build:
|
|
name: Windows Build Test
|
|
if: github.repository_owner == 'wolfssl'
|
|
runs-on: windows-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
arch: [ x64, Win32, ARM64 ]
|
|
# This should be a safe limit for the tests to run.
|
|
timeout-minutes: 6
|
|
env:
|
|
# Path to the solution file relative to the root of the project.
|
|
SOLUTION_FILE_PATH: wolfssl64.sln
|
|
|
|
# Configuration type to build.
|
|
# You can convert this to a build matrix if you need coverage of multiple configuration types.
|
|
# https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
|
|
BUILD_CONFIGURATION: Release
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Add MSBuild to PATH
|
|
uses: microsoft/setup-msbuild@v2
|
|
|
|
- name: Restore NuGet packages
|
|
working-directory: ${{env.GITHUB_WORKSPACE}}
|
|
run: nuget restore ${{env.SOLUTION_FILE_PATH}}
|
|
|
|
- name: Build
|
|
working-directory: ${{env.GITHUB_WORKSPACE}}
|
|
# Add additional options to the MSBuild command line here (like platform or verbosity level).
|
|
# See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
|
|
run: msbuild /m /p:PlatformToolset=v142 /p:Platform=${{matrix.arch}} /p:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}}
|
|
|
|
- if: ${{ matrix.arch != 'ARM64' }}
|
|
name: Run Test
|
|
working-directory: ${{env.GITHUB_WORKSPACE}}
|
|
run: Release/${{matrix.arch}}/testsuite.exe
|