zephyr.yml 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. name: Zephyr tests
  2. on:
  3. workflow_call:
  4. jobs:
  5. run_test:
  6. name: Build and run
  7. runs-on: ubuntu-latest
  8. timeout-minutes: 20
  9. steps:
  10. - name: Install dependencies
  11. run: |
  12. # Don't prompt for anything
  13. export DEBIAN_FRONTEND=noninteractive
  14. sudo apt-get update
  15. # most of the ci-base zephyr docker image packages
  16. sudo apt-get install -y zip bridge-utils uml-utilities \
  17. git cmake ninja-build gperf ccache dfu-util device-tree-compiler wget \
  18. python3-dev python3-pip python3-setuptools python3-tk python3-wheel xz-utils file \
  19. make gcc gcc-multilib g++-multilib libsdl2-dev libmagic1 \
  20. autoconf automake bison build-essential ca-certificates cargo ccache chrpath cmake \
  21. cpio device-tree-compiler dfu-util diffstat dos2unix doxygen file flex g++ gawk gcc \
  22. gcovr git git-core gnupg gperf gtk-sharp2 help2man iproute2 lcov libcairo2-dev \
  23. libglib2.0-dev libgtk2.0-0 liblocale-gettext-perl libncurses5-dev libpcap-dev \
  24. libpopt0 libsdl1.2-dev libsdl2-dev libssl-dev libtool libtool-bin locales make \
  25. net-tools ninja-build openssh-client parallel pkg-config python3-dev python3-pip \
  26. python3-ply python3-setuptools python-is-python3 qemu rsync socat srecord sudo \
  27. texinfo unzip wget ovmf xz-utils
  28. - name: Install west
  29. run: sudo pip install west
  30. - name: Init west workspace
  31. run: west init zephyr
  32. - name: Update west.yml
  33. working-directory: zephyr/zephyr
  34. run: |
  35. REF=$(echo '${{ github.ref }}' | sed -e 's/\//\\\//g')
  36. sed -e 's/remotes:/remotes:\n \- name: wolfssl\n url\-base: https:\/\/github.com\/${{ github.repository_owner }}/' -i west.yml
  37. sed -e "s/projects:/projects:\n \- name: wolfssl\n path: modules\/crypto\/wolfssl\n remote: wolfssl\n revision: $REF/" -i west.yml
  38. - name: Update west workspace
  39. working-directory: zephyr
  40. run: west update -n -o=--depth=1
  41. - name: Export zephyr
  42. working-directory: zephyr
  43. run: west zephyr-export
  44. - name: Install pip dependencies
  45. working-directory: zephyr
  46. run: sudo pip install -r zephyr/scripts/requirements.txt
  47. - name: Install zephyr SDK
  48. run: |
  49. wget -q https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.1/zephyr-sdk-0.16.1_linux-x86_64.tar.xz
  50. tar xf zephyr-sdk-0.16.1_linux-x86_64.tar.xz
  51. cd zephyr-sdk-0.16.1
  52. ./setup.sh -h -c
  53. - name: Run wolfssl test
  54. id: wolfssl-test
  55. working-directory: zephyr
  56. run: |
  57. ./zephyr/scripts/twister --testsuite-root modules/crypto/wolfssl --test zephyr/samples/wolfssl_test/sample.crypto.wolfssl_test -vvv
  58. rm -rf zephyr/twister-out
  59. - name: Run wolfssl TLS sock test
  60. id: wolfssl-tls-sock
  61. working-directory: zephyr
  62. run: |
  63. ./zephyr/scripts/twister --testsuite-root modules/crypto/wolfssl --test zephyr/samples/wolfssl_tls_sock/sample.crypto.wolfssl_tls_sock -vvv
  64. rm -rf zephyr/twister-out
  65. - name: Run wolfssl TLS thread test
  66. id: wolfssl-tls-thread
  67. working-directory: zephyr
  68. run: |
  69. ./zephyr/scripts/twister --testsuite-root modules/crypto/wolfssl --test zephyr/samples/wolfssl_tls_thread/sample.crypto.wolfssl_tls_thread -vvv
  70. rm -rf zephyr/twister-out
  71. - name: Zip failure logs
  72. if: ${{ failure() && (steps.wolfssl-test.outcome == 'failure' || steps.wolfssl-tls-sock.outcome == 'failure' || steps.wolfssl-tls-thread.outcome == 'failure') }}
  73. run: |
  74. zip -9 -r logs.zip zephyr/twister-out
  75. - name: Upload failure logs
  76. if: ${{ failure() && (steps.wolfssl-test.outcome == 'failure' || steps.wolfssl-tls-sock.outcome == 'failure' || steps.wolfssl-tls-thread.outcome == 'failure') }}
  77. uses: actions/upload-artifact@v3
  78. with:
  79. name: zephyr-client-test-logs
  80. path: logs.zip
  81. retention-days: 5