123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- 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-latest, 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-latest, 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-latest, 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-latest, 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
|