Merge pull request #6100 from julek-wolfssl/stunnel-github-action-test

Add OSP github action
This commit is contained in:
András Fekete
2023-02-20 15:41:58 -05:00
committed by GitHub
7 changed files with 186 additions and 118 deletions

View File

@ -4,7 +4,7 @@ on:
jobs: jobs:
espressif_latest: espressif_latest:
name: Test Espressif on latest Docker container name: latest Docker container
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: container:
image: espressif/idf:latest image: espressif/idf:latest
@ -13,7 +13,7 @@ jobs:
- name: Initialize Espressif IDE and build examples - name: Initialize Espressif IDE and build examples
run: . /opt/esp/idf/export.sh; IDE/Espressif/ESP-IDF/compileAllExamples.sh run: . /opt/esp/idf/export.sh; IDE/Espressif/ESP-IDF/compileAllExamples.sh
espressif_v4_4: espressif_v4_4:
name: Test Espressif on v4.4 Docker container name: v4.4 Docker container
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: container:
image: espressif/idf:release-v4.4 image: espressif/idf:release-v4.4
@ -22,7 +22,7 @@ jobs:
- name: Initialize Espressif IDE and build examples - name: Initialize Espressif IDE and build examples
run: . /opt/esp/idf/export.sh; IDE/Espressif/ESP-IDF/compileAllExamples.sh run: . /opt/esp/idf/export.sh; IDE/Espressif/ESP-IDF/compileAllExamples.sh
espressif_v5_0: espressif_v5_0:
name: Test Espressif on v5.0 Docker container name: v5.0 Docker container
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: container:
image: espressif/idf:release-v5.0 image: espressif/idf:release-v5.0

View File

@ -24,7 +24,7 @@ jobs:
path: src/.libs/libwolfssl.so path: src/.libs/libwolfssl.so
retention-days: 1 retention-days: 1
compile_container: compile_container:
name: OpenWrt test name: Compile container
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: build_library needs: build_library
strategy: strategy:
@ -37,8 +37,7 @@ jobs:
with: with:
name: libwolfssl.so name: libwolfssl.so
path: Docker/OpenWrt/. path: Docker/OpenWrt/.
- - name: Build but dont push
name: Build but dont push
uses: docker/build-push-action@v3 uses: docker/build-push-action@v3
with: with:
context: Docker/OpenWrt context: Docker/OpenWrt

50
.github/workflows/haproxy.yml vendored Normal file
View File

@ -0,0 +1,50 @@
name: HaProxy Tests
on:
workflow_call:
jobs:
haproxy_check:
strategy:
matrix:
# List of refs to test
ref: [ master ]
name: ${{ matrix.ref }}
runs-on: ubuntu-latest
steps:
- name: Build wolfSSL
uses: wolfSSL/actions-build-autotools-project@v1
with:
path: wolfssl
configure: --enable-quic --enable-haproxy
install: true
- name: Checkout VTest
uses: actions/checkout@v3
with:
repository: vtest/VTest
path: VTest
- name: Build VTest
working-directory: VTest
# Special flags due to: https://github.com/vtest/VTest/issues/12
run: make FLAGS='-O2 -s -Wall'
- name: Checkout HaProxy
uses: actions/checkout@v3
with:
repository: haproxy/haproxy
path: haproxy
ref: ${{ matrix.ref }}
- name: Build HaProxy
working-directory: haproxy
run: >-
make -j TARGET=linux-glibc DEBUG='-DDEBUG_MEMORY_POOLS -DDEBUG_STRICT'
USE_OPENSSL_WOLFSSL=1 USE_QUIC=1 SSL_INC=$GITHUB_WORKSPACE/build-dir/include/
SSL_LIB=$GITHUB_WORKSPACE/build-dir/lib/ ADDLIB=-Wl,-rpath=$GITHUB_WORKSPACE/build-dir/lib
- name: Test HaProxy
working-directory: haproxy
run: make reg-tests reg-tests/ssl VTEST_PROGRAM=$GITHUB_WORKSPACE/VTest/vtest

View File

@ -1,4 +1,4 @@
name: wolfSSL CI tests name: CI
concurrency: concurrency:
group: ${{ github.ref }} group: ${{ github.ref }}
cancel-in-progress: true cancel-in-progress: true
@ -10,11 +10,18 @@ on:
branches: [ '*' ] branches: [ '*' ]
jobs: jobs:
call_docker-Espressif: espressif:
uses: ./.github/workflows/docker-Espressif.yml uses: ./.github/workflows/docker-Espressif.yml
call_multi-compiler: multi-compiler:
uses: ./.github/workflows/multi-compiler.yml uses: ./.github/workflows/multi-compiler.yml
call_docker-OpenWrt: openwrt:
uses: ./.github/workflows/docker-OpenWrt.yml uses: ./.github/workflows/docker-OpenWrt.yml
call_os-check: os-check:
uses: ./.github/workflows/os-check.yml uses: ./.github/workflows/os-check.yml
stunnel:
uses: ./.github/workflows/stunnel.yml
openvpn:
uses: ./.github/workflows/openvpn.yml
# TODO: Currently this test fails. Enable it once it becomes passing.
# haproxy:
# uses: ./.github/workflows/haproxy.yml

36
.github/workflows/openvpn.yml vendored Normal file
View File

@ -0,0 +1,36 @@
name: OpenVPN Tests
on:
workflow_call:
jobs:
openvpn_check:
strategy:
matrix:
# List of refs to test
ref: [ master, release/2.6, v2.6.0 ]
name: ${{ matrix.ref }}
runs-on: ubuntu-latest
steps:
- name: Build wolfSSL
uses: wolfSSL/actions-build-autotools-project@v1
with:
path: wolfssl
configure: --enable-openvpn
install: true
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install liblzo2-dev libpam0g-dev liblz4-dev libcap-ng-dev linux-libc-dev man2html libcmocka-dev python3-docutils libtool automake autoconf
- name: Build and test openvpn
uses: wolfSSL/actions-build-autotools-project@v1
with:
repository: OpenVPN/openvpn
ref: ${{ matrix.ref }}
path: openvpn
configure: >-
--with-crypto-library=wolfssl
WOLFSSL_CFLAGS="-I$GITHUB_WORKSPACE/build-dir/include/ -I$GITHUB_WORKSPACE/build-dir/include/wolfssl"
WOLFSSL_LIBS="-L$GITHUB_WORKSPACE/build-dir/lib -lwolfssl"
check: true

View File

@ -8,79 +8,68 @@ jobs:
strategy: strategy:
matrix: matrix:
os: [ ubuntu-latest, macos-latest ] os: [ ubuntu-latest, macos-latest ]
name: make_check on ${{ matrix.os }} config: [
# Add new configs here
'',
'--enable-all --enable-asn=template',
'--enable-all --enable-asn=original',
]
name: make check
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- uses: actions/checkout@v3 - name: Build and test wolfSSL
- if: ${{ matrix.os == 'macos-latest' }} uses: wolfSSL/actions-build-autotools-project@v1
run: brew install automake libtool with:
- run: ./autogen.sh configure: ${{ matrix.config }}
- name: configure make check check: true
run: |
./configure
make
make check
make distcheck
make_check_enable_all: make_user_settings:
strategy: strategy:
matrix: matrix:
os: [ ubuntu-latest, macos-latest ] os: [ ubuntu-latest, macos-latest ]
name: make_check_enable_all on ${{ matrix.os }} user-settings: [
# Add new user_settings.h here
'examples/configs/user_settings_all.h',
]
name: make user_setting.h
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- uses: actions/checkout@v3 - name: Build and test wolfSSL
- if: ${{ matrix.os == 'macos-latest' }} uses: wolfSSL/actions-build-autotools-project@v1
run: brew install automake libtool with:
- run: ./autogen.sh configure: --enable-usersettings
- name: configure all make check check: true
run: | user-settings: ${{ matrix.user-settings }}
./configure --enable-all
make
make check
make distcheck
make_check_enable_all_asn: make_user_settings_testwolfcrypt:
strategy: strategy:
matrix: matrix:
os: [ ubuntu-latest, macos-latest ] os: [ ubuntu-latest, macos-latest ]
name: make_check_enable_all_asn on ${{ matrix.os }} 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',
]
name: make user_setting.h (testwolfcrypt only)
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- uses: actions/checkout@v3 - name: Build and test wolfSSL
- if: ${{ matrix.os == 'macos-latest' }} uses: wolfSSL/actions-build-autotools-project@v1
run: brew install automake libtool with:
- run: ./autogen.sh configure: --enable-usersettings --disable-examples
- name: configure all ASN template check: false
run: | user-settings: ${{ matrix.user-settings }}
./configure --enable-all --enable-asn=template
make
make check
make distcheck
make_user: - name: Run wolfcrypt/test/testwolfcrypt
strategy: run: ./wolfcrypt/test/testwolfcrypt
matrix:
os: [ ubuntu-latest, macos-latest ]
name: make_user on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- if: ${{ matrix.os == 'macos-latest' }}
run: brew install automake libtool
- run: ./autogen.sh
- name: make user_settings_all.h
run: |
cp ./examples/configs/user_settings_all.h user_settings.h
./configure --enable-usersettings
make
make check
# Has to be dedicated function due to the sed call
make_user_all: make_user_all:
strategy: strategy:
matrix: matrix:
os: [ ubuntu-latest, macos-latest ] os: [ ubuntu-latest, macos-latest ]
name: make_user_all on ${{ matrix.os }} name: make user_setting.h (with sed)
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
@ -95,60 +84,6 @@ jobs:
make make
make check make check
make_user_minecc:
strategy:
matrix:
os: [ ubuntu-latest, macos-latest ]
name: make_user_minecc on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- if: ${{ matrix.os == 'macos-latest' }}
run: brew install automake libtool
- run: ./autogen.sh
- name: user_settings_min_ecc.h
run: |
cp ./examples/configs/user_settings_min_ecc.h user_settings.h
./configure --enable-usersettings --disable-examples
make
./wolfcrypt/test/testwolfcrypt
make_user_wolfboot:
strategy:
matrix:
os: [ ubuntu-latest, macos-latest ]
name: make_user_wolfboot on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- if: ${{ matrix.os == 'macos-latest' }}
run: brew install automake libtool
- run: ./autogen.sh
- name: user_settings_wolfboot_keytools.h
run: |
cp ./examples/configs/user_settings_wolfboot_keytools.h user_settings.h
./configure --enable-usersettings --disable-examples
make
./wolfcrypt/test/testwolfcrypt
make_user_wolftpm:
strategy:
matrix:
os: [ ubuntu-latest, macos-latest ]
name: make_user_wolftpm on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- if: ${{ matrix.os == 'macos-latest' }}
run: brew install automake libtool
- run: ./autogen.sh
- name: user_settings_wolftpm.h
run: |
cp ./examples/configs/user_settings_wolftpm.h user_settings.h
./configure --enable-usersettings --disable-examples
make
./wolfcrypt/test/testwolfcrypt
windows_build: windows_build:
name: Windows Build Test name: Windows Build Test
runs-on: windows-latest runs-on: windows-latest

41
.github/workflows/stunnel.yml vendored Normal file
View File

@ -0,0 +1,41 @@
name: stunnel Tests
on:
workflow_call:
jobs:
stunnel_check:
strategy:
matrix:
# List of releases to test
ref: [ 5.67 ]
name: ${{ matrix.ref }}
runs-on: ubuntu-latest
steps:
- name: Build wolfSSL
uses: wolfSSL/actions-build-autotools-project@v1
with:
path: wolfssl
configure: --enable-stunnel
install: true
- name: Checkout OSP
uses: actions/checkout@v3
with:
repository: wolfssl/osp
path: osp
- name: Build and test stunnel
uses: wolfSSL/actions-build-autotools-project@v1
with:
repository: mtrojnar/stunnel
ref: stunnel-${{ matrix.ref }}
path: stunnel
patch-file: $GITHUB_WORKSPACE/osp/stunnel/${{ matrix.ref }}/stunnel-${{ matrix.ref }}.patch
configure: --enable-wolfssl SSLDIR=$GITHUB_WORKSPACE/build-dir
check: true
- name: Confirm stunnel built with wolfSSL
working-directory: ./stunnel
run: ldd src/stunnel | grep wolfssl