kopie van
https://github.com/wolfSSL/wolfssl.git
gesynchroniseerd 2025-01-19 05:34:54 +00:00
129 regels
5,5 KiB
YAML
129 regels
5,5 KiB
YAML
name: Zephyr 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:
|
|
run_test:
|
|
name: Build and run
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
config:
|
|
- zephyr-ref: v3.4.0
|
|
zephyr-sdk: 0.16.1
|
|
- zephyr-ref: v3.5.0
|
|
zephyr-sdk: 0.16.3
|
|
- zephyr-ref: v2.7.4
|
|
zephyr-sdk: 0.16.3
|
|
if: github.repository_owner == 'wolfssl'
|
|
runs-on: ubuntu-latest
|
|
# This should be a safe limit for the tests to run.
|
|
timeout-minutes: 25
|
|
steps:
|
|
- name: Install dependencies
|
|
run: |
|
|
# Don't prompt for anything
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
sudo apt-get update
|
|
# most of the ci-base zephyr docker image packages
|
|
sudo apt-get install -y zip bridge-utils uml-utilities \
|
|
git cmake ninja-build gperf ccache dfu-util device-tree-compiler wget \
|
|
python3-dev python3-pip python3-setuptools python3-tk python3-wheel xz-utils file \
|
|
make gcc gcc-multilib g++-multilib libsdl2-dev libmagic1 \
|
|
autoconf automake bison build-essential ca-certificates cargo ccache chrpath cmake \
|
|
cpio device-tree-compiler dfu-util diffstat dos2unix doxygen file flex g++ gawk gcc \
|
|
gcovr git git-core gnupg gperf gtk-sharp2 help2man iproute2 lcov libcairo2-dev \
|
|
libglib2.0-dev libgtk2.0-0 liblocale-gettext-perl libncurses5-dev libpcap-dev \
|
|
libpopt0 libsdl1.2-dev libsdl2-dev libssl-dev libtool libtool-bin locales make \
|
|
net-tools ninja-build openssh-client parallel pkg-config python3-dev python3-pip \
|
|
python3-ply python3-setuptools python-is-python3 qemu-kvm rsync socat srecord sudo \
|
|
texinfo unzip wget ovmf xz-utils
|
|
|
|
- name: Install west
|
|
run: sudo pip install west
|
|
|
|
- name: Init west workspace
|
|
run: west init --mr ${{ matrix.config.zephyr-ref }} zephyr
|
|
|
|
- name: Update west.yml
|
|
working-directory: zephyr/zephyr
|
|
run: |
|
|
REF=$(echo '${{ github.ref }}' | sed -e 's/\//\\\//g')
|
|
sed -e 's/remotes:/remotes:\n \- name: wolfssl\n url\-base: https:\/\/github.com\/${{ github.repository_owner }}/' -i west.yml
|
|
sed -e "s/projects:/projects:\n \- name: wolfssl\n path: modules\/crypto\/wolfssl\n remote: wolfssl\n revision: $REF/" -i west.yml
|
|
|
|
- name: Update west workspace
|
|
working-directory: zephyr
|
|
run: west update -n -o=--depth=1
|
|
|
|
- name: Export zephyr
|
|
working-directory: zephyr
|
|
run: west zephyr-export
|
|
|
|
- name: Install pip dependencies
|
|
working-directory: zephyr
|
|
run: sudo pip install -r zephyr/scripts/requirements.txt
|
|
|
|
- name: Install zephyr SDK
|
|
run: |
|
|
wget -q https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${{ matrix.config.zephyr-sdk }}/zephyr-sdk-${{ matrix.config.zephyr-sdk }}_linux-x86_64_minimal.tar.xz
|
|
tar xf zephyr-sdk-${{ matrix.config.zephyr-sdk }}_linux-x86_64_minimal.tar.xz
|
|
cd zephyr-sdk-${{ matrix.config.zephyr-sdk }}
|
|
./setup.sh -h -c -t x86_64-zephyr-elf
|
|
|
|
- name: Fix options for 2.7.4
|
|
if: ${{ matrix.config.zephyr-ref == 'v2.7.4' }}
|
|
working-directory: zephyr/modules/crypto/wolfssl
|
|
run: |
|
|
sed -i -e 's/CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE/CONFIG_MINIMAL_LIBC_MALLOC_ARENA_SIZE/g' $(find -name prj.conf)
|
|
|
|
- name: Run wolfssl test
|
|
id: wolfssl-test
|
|
working-directory: zephyr
|
|
run: |
|
|
./zephyr/scripts/twister -T modules/crypto/wolfssl --test zephyr/samples/wolfssl_test/sample.crypto.wolfssl_test -vvv
|
|
rm -rf zephyr/twister-out
|
|
./zephyr/scripts/twister -T modules/crypto/wolfssl --test zephyr/samples/wolfssl_test/sample.crypto.wolfssl_test_no_malloc -vvv
|
|
rm -rf zephyr/twister-out
|
|
|
|
- name: Run wolfssl TLS sock test
|
|
# Results in a page fault that I can't trace
|
|
if: ${{ matrix.config.zephyr-ref != 'v2.7.4' }}
|
|
id: wolfssl-tls-sock
|
|
working-directory: zephyr
|
|
run: |
|
|
./zephyr/scripts/twister -T modules/crypto/wolfssl --test zephyr/samples/wolfssl_tls_sock/sample.crypto.wolfssl_tls_sock -vvv
|
|
rm -rf zephyr/twister-out
|
|
./zephyr/scripts/twister -T modules/crypto/wolfssl --test zephyr/samples/wolfssl_tls_sock/sample.crypto.wolfssl_tls_sock_no_malloc -vvv
|
|
rm -rf zephyr/twister-out
|
|
|
|
- name: Run wolfssl TLS thread test
|
|
if: ${{ matrix.config.zephyr-ref != 'v2.7.4' }}
|
|
id: wolfssl-tls-thread
|
|
working-directory: zephyr
|
|
run: |
|
|
./zephyr/scripts/twister -T modules/crypto/wolfssl --test zephyr/samples/wolfssl_tls_thread/sample.crypto.wolfssl_tls_thread -vvv
|
|
rm -rf zephyr/twister-out
|
|
|
|
- name: Zip failure logs
|
|
if: ${{ failure() && (steps.wolfssl-test.outcome == 'failure' || steps.wolfssl-tls-sock.outcome == 'failure' || steps.wolfssl-tls-thread.outcome == 'failure') }}
|
|
run: |
|
|
zip -9 -r logs.zip zephyr/twister-out
|
|
|
|
- name: Upload failure logs
|
|
if: ${{ failure() && (steps.wolfssl-test.outcome == 'failure' || steps.wolfssl-tls-sock.outcome == 'failure' || steps.wolfssl-tls-thread.outcome == 'failure') }}
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: zephyr-client-test-logs
|
|
path: logs.zip
|
|
retention-days: 5
|