Full build and test #15
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: Full build and test | |
on: | |
schedule: | |
- cron: '0 1 * * *' # run at 1 AM UTC | |
# Allow manual runs | |
workflow_dispatch: | |
env: | |
IPV6: 0 | |
jobs: | |
linux: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
cc: [gcc, clang, g++, clang++] | |
target: [test, mip_test] | |
ssl: ["", MBEDTLS, OPENSSL] | |
select: ["-DMG_ENABLE_POLL=0 -DMG_ENABLE_EPOLL=0", "-DMG_ENABLE_POLL=1 -DMG_ENABLE_EPOLL=0", "-DMG_ENABLE_POLL=0 -DMG_ENABLE_EPOLL=1"] | |
exclude: | |
- ssl: MBEDTLS | |
select: "-DMG_ENABLE_POLL=0 -DMG_ENABLE_EPOLL=0" | |
- ssl: MBEDTLS | |
select: "-DMG_ENABLE_POLL=1 -DMG_ENABLE_EPOLL=0" | |
- ssl: OPENSSL | |
select: "-DMG_ENABLE_POLL=0 -DMG_ENABLE_EPOLL=0" | |
- ssl: OPENSSL | |
select: "-DMG_ENABLE_POLL=1 -DMG_ENABLE_EPOLL=0" | |
name: linux ${{ matrix.target }} CC=${{ matrix.cc }} SSL=${{ matrix.ssl }} TFLAGS=${{ matrix.select }} | |
env: | |
CC: ${{ matrix.cc }} | |
SSL: ${{ matrix.ssl }} | |
TFLAGS: ${{ matrix.select }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 2 } | |
- run: ./test/setup_ga_network.sh && sudo apt -y update ; sudo apt -y install libmbedtls-dev && make ${{ matrix.target }} | |
s390: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 2 } | |
- run: sudo apt -y update ; sudo apt -y install qemu binfmt-support qemu-user-static && docker run --rm --privileged multiarch/qemu-user-static --reset -p yes && make s390 | |
armhf: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 2 } | |
- run: sudo apt -y update ; sudo apt -y install qemu binfmt-support qemu-user-static && docker run --rm --privileged multiarch/qemu-user-static --reset -p yes && make armhf | |
linux2: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 2 } | |
- run: sudo apt -y update ; sudo apt -y install libmbedtls-dev valgrind | |
- run: make unamalgamated && make valgrind && make mg_prefix | |
macos: | |
runs-on: macos-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
ssl: ["", MBEDTLS, OPENSSL] | |
select: [-DMG_ENABLE_POLL=0, -DMG_ENABLE_POLL=1] | |
exclude: | |
- ssl: MBEDTLS | |
select: -DMG_ENABLE_POLL=0 | |
- ssl: OPENSSL | |
select: -DMG_ENABLE_POLL=0 | |
name: macos SSL=${{ matrix.ssl }} TFLAGS=${{ matrix.select }} | |
env: | |
SSL: ${{ matrix.ssl }} | |
TFLAGS: ${{ matrix.select }} -DNO_SNTP_CHECK -Wno-sign-conversion # Workaround for MbedTLS 3.5.0 | |
HOMEBREW_NO_AUTO_UPDATE: 1 | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 2 } | |
- run: brew install jq mbedtls openssl | |
- run: make test ASAN_OPTIONS= MBEDTLS=`echo /usr/local/Cellar/mbedtls*/*` OPENSSL=`echo /usr/local/Cellar/openssl*/*` | |
- run: make mg_prefix | |
windows: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
target: [vc98, vc17, vc22, mingw, mingw++] | |
select: [-DMG_ENABLE_POLL=0, -DMG_ENABLE_POLL=1] | |
exclude: | |
- target: vc98 | |
select: -DMG_ENABLE_POLL=1 | |
name: windows ${{ matrix.target }} TFLAGS=${{ matrix.select }} | |
env: | |
TFLAGS: ${{ matrix.select }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 2 } | |
- run: make ${{ matrix.target }} | |
arm: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: make arm | |
riscv: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: make riscv | |
examples: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: sudo apt -y install libmbedtls-dev libpcap-dev | |
- run: make examples | |
- run: make clean | |
examples_win: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
# - uses: egor-tensin/setup-mingw@v2 | |
# with: | |
# platform: x64 | |
- name: test they build | |
run: make examples_win | |
shell: cmd | |
- name: test they clean | |
run: make clean_examples_win | |
shell: cmd | |
examples_mac: | |
runs-on: macos-latest | |
env: { HOMEBREW_NO_AUTO_UPDATE: 1 } | |
steps: | |
- uses: actions/checkout@v3 | |
- run: make examples_mac | |
- run: make clean_examples_mac | |
arduino: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 2 } | |
- run: echo # nothing specific to install or do | |
- run: make -C examples/arduino arduino-xiao | |
# - run: make -C examples/arduino arduino-nano | |
- run: make -C examples/arduino clean | |
generic_examples: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
example: | |
- path: esp32/uart-bridge | |
- path: esp32/micropython | |
- path: esp8266/http-client-server | |
name: ${{ matrix.example.path }} | |
env: | |
GO: 0 | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 2 } | |
- run: if ./test/match_changed_files.sh '^src|^examples/${{ matrix.example.path }}'; then echo GO=1 >> $GITHUB_ENV ; fi | |
- run: echo # nothing specific to install or do | |
- run: make -C examples/${{ matrix.example.path }} build | |
generic_examples_arm: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
example: | |
- path: microchip/same54-xpro/mqtt-client | |
- path: infineon/infineon-xmc4700_4800-lwip-rtx-rtos | |
- path: nxp/nxp-mimxrt1020-azurertos | |
- path: nxp/nxp-frdmk66f-freertos | |
- path: nxp/nxp-lpcxpresso54s018m-freertos | |
- path: nxp/nxp-mimxrt1020-freertos | |
- path: nxp/nxp-evkbimxrt1050-lwip-freertos | |
- path: nxp/nxp-evkmimxrt1020-lwip-freertos | |
- path: nxp/nxp-evkmimxrt1024-lwip-freertos | |
- path: nxp/nxp-evkmimxrt1060-lwip-freertos | |
- path: nxp/nxp-evkmimxrt1064-lwip-freertos | |
- path: nxp/nxp-evkmimxrt1160-cm7-lwip-freertos | |
- path: nxp/nxp-evkmimxrt1170-cm7-lwip-freertos | |
- path: nxp/nxp-frdmk64f-lwip-freertos | |
- path: nxp/nxp-frdmk66f-lwip-freertos | |
- path: nxp/nxp-lpcxpresso54018-lwip-freertos | |
- path: nxp/nxp-lpcxpresso54608-lwip-freertos | |
- path: nxp/nxp-lpcxpresso54618-lwip-freertos | |
- path: nxp/nxp-lpcxpresso54628-lwip-freertos | |
- path: nxp/nxp-twrk65f180m-lwip-freertos | |
- path: nxp/nxp-twrkv58f220m-lwip-freertos | |
- path: rp2040/pico-rmii | |
- path: stm32/nucleo-f429zi-make-baremetal-builtin-rndis | |
- path: stm32/nucleo-f746zg-make-baremetal-builtin-rndis | |
- path: stm32/nucleo-g031-make-baremetal-builtin | |
- path: ti/ti-ek-tm4c1294xl-http-server | |
- path: ti/ek-tm4c1294xl-make-baremetal-builtin-rndis | |
name: ${{ matrix.example.path }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 2 } | |
- run: sudo apt -y update && sudo apt -y install gcc-arm-none-eabi | |
- run: make -C examples/${{ matrix.example.path }} build | |
device_dashboard_examples: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
example: | |
- path: esp32/device-dashboard | |
name: ${{ matrix.example.path }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 2 } | |
- run: echo # nothing specific to install or do | |
- run: make -C examples/${{ matrix.example.path }} build | |
device_dashboard_examples_arm: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
example: | |
- path: microchip/same54-xpro/device-dashboard | |
- path: nxp/rt1020-evk-make-baremetal-builtin | |
- path: nxp/rt1020-evk-make-freertos-builtin | |
- path: nxp/rt1060-evk-make-baremetal-builtin | |
- path: nxp/rt1060-evk-make-freertos-builtin | |
- path: rp2040/pico-rndis-dashboard | |
- path: rp2040/pico-w | |
- path: rp2040/pico-w5500 | |
- path: stm32/nucleo-f429zi-make-baremetal-builtin | |
- path: stm32/nucleo-f429zi-make-freertos-builtin | |
- path: stm32/nucleo-f746zg-make-baremetal-builtin | |
- path: stm32/nucleo-f746zg-make-freertos-builtin | |
- path: stm32/nucleo-f746zg-make-freertos-tcp | |
- path: stm32/nucleo-f746zg-make-baremetal-builtin-cmsis_driver | |
- path: stm32/nucleo-h563zi-make-baremetal-builtin | |
- path: stm32/nucleo-h563zi-make-freertos-builtin | |
- path: stm32/nucleo-h723zg-make-freertos-builtin | |
- path: stm32/nucleo-h743zi-make-baremetal-builtin | |
- path: stm32/nucleo-h743zi-make-freertos-builtin | |
- path: stm32/stm32h573i-dk-make-baremetal-builtin | |
- path: stm32/stm32h573i-dk-make-freertos-builtin | |
- path: ti/ek-tm4c1294xl-make-baremetal-builtin | |
- path: ti/ek-tm4c1294xl-make-freertos-builtin | |
name: ${{ matrix.example.path }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 2 } | |
- run: sudo apt -y update && sudo apt -y install gcc-arm-none-eabi | |
- run: make -C examples/${{ matrix.example.path }} build | |
# mqtt_dashboard_examples: | |
# runs-on: ubuntu-latest | |
# strategy: | |
# fail-fast: false | |
# matrix: | |
# example: | |
# - path: | |
# name: ${{ matrix.example.path }} | |
# steps: | |
# - uses: actions/checkout@v3 | |
# with: { fetch-depth: 2 } | |
# - run: echo # nothing specific to install or do | |
# - run: make -C examples/${{ matrix.example.path }} build | |
mqtt_dashboard_examples_arm: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
example: | |
- path: rp2040/pico-rndis-device | |
name: ${{ matrix.example.path }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 2 } | |
- run: sudo apt -y update && sudo apt -y install gcc-arm-none-eabi | |
- run: make -C examples/${{ matrix.example.path }} build | |
# dual_examples: | |
# runs-on: ubuntu-latest | |
# strategy: | |
# fail-fast: false | |
# matrix: | |
# example: | |
# - path: | |
# name: ${{ matrix.example.path }} | |
# steps: | |
# - uses: actions/checkout@v3 | |
# with: { fetch-depth: 2 } | |
# - run: echo # nothing specific to install or do | |
# - run: make -C examples/${{ matrix.example.path }} device_dashboard | |
# - run: make -C examples/${{ matrix.example.path }} mqtt_dashboard | |
dual_examples_arm: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
example: | |
- path: stm32/nucleo-h723zg-make-baremetal-builtin | |
name: ${{ matrix.example.path }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 2 } | |
- run: sudo apt -y update && sudo apt -y install gcc-arm-none-eabi | |
- run: make -C examples/${{ matrix.example.path }} device_dashboard | |
- run: make -C examples/${{ matrix.example.path }} mqtt_dashboard | |
cube_examples: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 2 } | |
- run: echo # nothing specific to install or do | |
- run: cd test/cube && make | |
zephyr_examples: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 2 } | |
- run: sudo apt -y update && sudo apt -y install gcc-arm-none-eabi | |
- run: make -C examples/zephyr init | |
- name: minify manifest | |
uses: mikefarah/yq@master | |
with: | |
cmd: yq -i eval '(.manifest.defaults, .manifest.remotes, .manifest.projects[] | select(.name == "cmsis" or .name == "hal_stm32" or .name == "mbedtls" or .name == "mcuboot" or .name == "picolibc" | del(.null) ), .manifest.self) as $i ireduce({};setpath($i | path; $i)) | del(.manifest.projects.[].null) | del(..|select(length==0))' examples/zephyr/zephyrproject/zephyr/west.yml | |
- run: make -C examples/zephyr update | |
- run: make -C examples/zephyr/device-dashboard build | |
- run: make -C examples/zephyr/http-client build | |
- run: make -C examples/zephyr/http-server build | |
- run: make -C examples/zephyr/mqtt-aws-client build | |
- run: make -C examples/zephyr/websocket-server build | |
test_f7: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 2 } | |
- name: baremetal | |
run: sudo apt -y update && sudo apt -y install gcc-arm-none-eabi | |
- run: make -C examples/stm32/nucleo-f746zg-make-baremetal-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}} | |
- run: make -C examples/stm32/nucleo-f746zg-make-freertos-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}} | |
- run: make -C examples/stm32/nucleo-f746zg-make-freertos-tcp test VCON_API_KEY=${{secrets.VCON_API_KEY}} | |
- name: Cube | |
run: echo # nothing specific to install or do | |
- run: make -C test/cube test PROJECTS=../../examples/stm32/nucleo-f746zg-cube-baremetal-builtin VCON_API_KEY=${{secrets.VCON_API_KEY}} DEVICE=5 | |
- run: make -C test/cube test PROJECTS=../../examples/stm32/nucleo-f746zg-cube-freertos-builtin VCON_API_KEY=${{secrets.VCON_API_KEY}} DEVICE=5 | |
- run: make -C test/cube test PROJECTS=../../examples/stm32/nucleo-f746zg-cube-freertos-lwip VCON_API_KEY=${{secrets.VCON_API_KEY}} DEVICE=5 | |
test_f4: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 2 } | |
- name: baremetal | |
run: sudo apt -y update && sudo apt -y install gcc-arm-none-eabi | |
- run: make -C examples/stm32/nucleo-f429zi-make-baremetal-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}} | |
- run: make -C examples/stm32/nucleo-f429zi-make-freertos-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}} | |
- name: Cube | |
run: echo # nothing specific to install or do | |
- run: make -C test/cube test PROJECTS=../../examples/stm32/nucleo-f429zi-cube-baremetal-builtin VCON_API_KEY=${{secrets.VCON_API_KEY}} DEVICE=2 | |
- run: make -C test/cube test PROJECTS=../../examples/stm32/nucleo-f429zi-cube-freertos-builtin VCON_API_KEY=${{secrets.VCON_API_KEY}} DEVICE=2 | |
- run: make -C test/cube test PROJECTS=../../examples/stm32/nucleo-f429zi-cube-freertos-lwip VCON_API_KEY=${{secrets.VCON_API_KEY}} DEVICE=2 | |
test_h743: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 3 } | |
- name: baremetal | |
run: sudo apt -y update && sudo apt -y install gcc-arm-none-eabi | |
- run: make -C examples/stm32/nucleo-h743zi-make-baremetal-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}} | |
- run: make -C examples/stm32/nucleo-h743zi-make-freertos-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}} | |
- name: Cube | |
run: echo # nothing specific to install or do | |
- run: make -C test/cube test PROJECTS=../../examples/stm32/nucleo-h743zi-cube-baremetal-builtin VCON_API_KEY=${{secrets.VCON_API_KEY}} DEVICE=6 | |
- run: make -C test/cube test PROJECTS=../../examples/stm32/nucleo-h743zi-cube-freertos-builtin VCON_API_KEY=${{secrets.VCON_API_KEY}} DEVICE=6 | |
test_h723: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 3 } | |
- name: baremetal | |
run: sudo apt -y update && sudo apt -y install gcc-arm-none-eabi | |
- run: make -C examples/stm32/nucleo-h723zg-make-baremetal-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}} | |
- run: make -C examples/stm32/nucleo-h723zg-make-freertos-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}} | |
test_h5: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 3 } | |
- name: baremetal | |
run: sudo apt -y update && sudo apt -y install gcc-arm-none-eabi | |
- run: make -C examples/stm32/nucleo-h563zi-make-baremetal-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}} | |
- run: make -C examples/stm32/nucleo-h563zi-make-freertos-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}} | |
test_rt1020: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 3 } | |
- name: baremetal | |
run: sudo apt -y update && sudo apt -y install gcc-arm-none-eabi | |
- run: make -C examples/nxp/rt1020-evk-make-baremetal-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}} | |
- run: make -C examples/nxp/rt1020-evk-make-freertos-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}} | |
test_rt1060: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 3 } | |
- name: baremetal | |
run: sudo apt -y update && sudo apt -y install gcc-arm-none-eabi | |
- run: make -C examples/nxp/rt1060-evk-make-baremetal-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}} | |
- run: make -C examples/nxp/rt1060-evk-make-freertos-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}} | |
test_tm4c: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 2 } | |
- name: baremetal | |
run: sudo apt -y update && sudo apt -y install gcc-arm-none-eabi | |
- run: make -C examples/ti/ek-tm4c1294xl-make-baremetal-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}} | |
- run: make -C examples/ti/ek-tm4c1294xl-make-freertos-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}} | |
test_same54: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 2 } | |
- name: baremetal | |
run: sudo apt -y update && sudo apt -y install gcc-arm-none-eabi | |
- run: make -C examples/microchip/same54-xpro/device-dashboard test VCON_API_KEY=${{secrets.VCON_API_KEY}} | |
- run: make -C examples/microchip/same54-xpro/mqtt-client test VCON_API_KEY=${{secrets.VCON_API_KEY}} | |
test_pico_w5500: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: { fetch-depth: 2 } | |
- name: SDK | |
run: sudo apt -y update && sudo apt -y install gcc-arm-none-eabi | |
- run: make -C examples/rp2040/pico-w5500 test VCON_API_KEY=${{secrets.VCON_API_KEY}} | |