Merge pull request #379 from JacobBarthelmeh/example_quote #178
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: WolfTPM Build Tests | |
on: | |
push: | |
branches: [ 'master', 'main', 'release/**' ] | |
pull_request: | |
branches: [ '*' ] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
# pull wolfTPM | |
- uses: actions/checkout@master | |
# setup wolfssl | |
- uses: actions/checkout@master | |
with: | |
repository: wolfssl/wolfssl | |
path: wolfssl | |
- name: wolfssl autogen | |
working-directory: ./wolfssl | |
run: ./autogen.sh | |
- name: wolfssl configure | |
working-directory: ./wolfssl | |
run: ./configure --enable-wolftpm --enable-pkcallbacks | |
- name: wolfssl make install | |
working-directory: ./wolfssl | |
run: | | |
make | |
sudo make install | |
# setup ibmswtpm2 | |
- uses: actions/checkout@master | |
with: | |
repository: kgoldman/ibmswtpm2 | |
path: ibmswtpm2 | |
- name: ibmswtpm2 make | |
working-directory: ./ibmswtpm2/src | |
run: | | |
make | |
./tpm_server & | |
# setup and test defaults (with simulator) | |
- name: autogen | |
run: ./autogen.sh | |
- name: configure | |
run: ./configure --enable-swtpm | |
- name: make | |
run: make | |
- name: make check | |
run: | | |
make check | |
WOLFSSL_PATH=./wolfssl ./examples/run_examples.sh | |
- name: make install | |
run: sudo make install | |
- name: make dist | |
run: make dist | |
# build and test CSharp wrapper | |
- name: Install mono | |
run: | | |
sudo apt-get install -y mono-mcs mono-tools-devel nunit nunit-console | |
- name: Build CSharp wrapper | |
working-directory: ./wrapper/CSharp | |
run: | | |
mcs wolfTPM.cs wolfTPM-tests.cs -r:/usr/lib/cli/nunit.framework-2.6.3/nunit.framework.dll -t:library | |
- name: Run self test | |
working-directory: ./wrapper/CSharp | |
run: | | |
LD_LIBRARY_PATH=../../src/.libs/:../../wolfssl/src/.libs/ nunit-console wolfTPM.dll -run=tpm_csharp_test.WolfTPMTest.TrySelfTest | |
- name: Run unit tests | |
working-directory: ./wrapper/CSharp | |
run: | | |
LD_LIBRARY_PATH=../../src/.libs/:../../wolfssl/src/.libs/ nunit-console wolfTPM.dll | |
# test no wolfcrypt | |
- name: configure no wolfCrypt | |
run: ./configure --enable-swtpm --disable-wolfcrypt | |
- name: make no wolfCrypt | |
run: make | |
- name: make check no wolfCrypt | |
run: | | |
make check | |
WOLFSSL_PATH=./wolfssl WOLFCRYPT_ENABLE=0 ./examples/run_examples.sh | |
# test no wrapper | |
- name: configure no wrapper | |
run: ./configure --enable-swtpm --disable-wrapper | |
- name: make no wrapper | |
run: make | |
- name: make check no wrapper | |
run: ./examples/native/native_test | |
# test small stack | |
- name: configure smallstack | |
run: ./configure --enable-swtpm --enable-smallstack | |
- name: make smallstack | |
run: make | |
- name: make check smallstack | |
run: | | |
make check | |
WOLFSSL_PATH=./wolfssl ./examples/run_examples.sh | |
# test tislock | |
- name: configure tislock | |
run: ./configure --enable-tislock | |
- name: make tislock | |
run: make | |
# build debug | |
- name: configure debug | |
run: ./configure --enable-debug | |
- name: make debug | |
run: make | |
# build verbose | |
- name: configure debug verbose | |
run: ./configure --enable-debug=verbose | |
- name: make debug verbose | |
run: make | |
# build io | |
- name: configure debug io | |
run: ./configure --enable-debug=io CFLAGS="-DWOLFTPM_DEBUG_TIMEOUT" | |
- name: make debug io | |
run: make | |
# build advio | |
- name: configure advio | |
run: ./configure --enable-advio | |
- name: make debug io | |
run: make | |
# build pedantic | |
- name: configure pedantic | |
run: ./configure CFLAGS="-Wpedantic" | |
- name: make pedantic | |
run: make | |
# build not provisioning | |
- name: configure not provisioning | |
run: ./configure --disable-provisioning | |
- name: make not provisioning | |
run: make | |
# test without ECC | |
- name: wolfssl no ECC | |
working-directory: ./wolfssl | |
run: | | |
./configure --enable-wolftpm --disable-ecc | |
make | |
sudo make install | |
- name: wolftpm no ECC | |
run: | | |
./configure --enable-swtpm | |
make | |
make check | |
WOLFSSL_PATH=./wolfssl WOLFCRYPT_ECC=0 ./examples/run_examples.sh | |
# test without RSA | |
- name: wolfssl no RSA | |
working-directory: ./wolfssl | |
run: | | |
./configure --enable-wolftpm --disable-rsa | |
make | |
sudo make install | |
- name: wolftpm no RSA | |
run: | | |
./configure --enable-swtpm | |
make | |
make check | |
WOLFSSL_PATH=./wolfssl WOLFCRYPT_RSA=0 ./examples/run_examples.sh | |
# test with default configure (no AES CFB, no PKCS7, no crpyto cb, no cert gen) | |
- name: wolfssl default configure | |
working-directory: ./wolfssl | |
run: | | |
./configure CFLAGS="-DWOLFSSL_PUBLIC_MP" | |
make | |
sudo make install | |
- name: wolftpm default configure | |
run: | | |
./configure --enable-swtpm | |
make | |
make check | |
WOLFSSL_PATH=./wolfssl WOLFCRYPT_DEFAULT=1 ./examples/run_examples.sh | |
# test with no filesystem / threading | |
- name: wolfssl no filesystem | |
working-directory: ./wolfssl | |
run: | | |
./configure --enable-wolftpm --disable-filesystem --enable-singlethreaded | |
make | |
sudo make install | |
- name: wolftpm no filesystem | |
run: | | |
./configure --enable-swtpm | |
make | |
make check | |
WOLFSSL_PATH=./wolfssl NO_FILESYSTEM=1 ./examples/run_examples.sh | |
# capture logs on failure | |
- name: Upload failure logs | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wolftpm-test-logs | |
path: | | |
run.out | |
test-suite.log | |
retention-days: 5 |