mongoose/.github/workflows/test.yml

333 lines
15 KiB
YAML
Raw Normal View History

2020-12-18 19:26:17 +08:00
name: build
on:
push:
paths:
- "**Makefile"
- "**.c"
- "**.h"
2022-10-31 18:40:34 +08:00
env:
IPV6: 0
2020-12-18 18:41:27 +08:00
jobs:
2020-12-18 19:09:03 +08:00
linux:
2020-12-18 18:41:27 +08:00
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
2022-09-22 17:34:38 +08:00
cc: [gcc, clang, g++, clang++]
2022-11-29 18:20:22 +08:00
target: [test, mip_test]
2023-07-27 02:33:30 +08:00
ssl: [MBEDTLS] #ssl: [MBEDTLS, OPENSSL]
name: linux ${{ matrix.target }} CC=${{ matrix.cc }} SSL=${{ matrix.ssl }}
env:
CC: ${{ matrix.cc }}
SSL: ${{ matrix.ssl }}
2020-12-18 18:41:27 +08:00
steps:
- uses: actions/checkout@v3
with: { fetch-depth: 2 }
2023-02-13 04:31:02 +08:00
- run: if ./test/match_changed_files.sh '^test|^src/.*.[ch]' ; then echo GO=1 >> $GITHUB_ENV ; fi
- if: ${{ env.GO == 1 }}
run: ./test/setup_ga_network.sh && sudo apt -y update ; sudo apt -y install libmbedtls-dev && make ${{ matrix.target }}
2022-10-31 18:40:34 +08:00
s390:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
2023-02-06 23:18:40 +08:00
with: { fetch-depth: 2 }
2023-02-13 04:31:02 +08:00
- run: if ./test/match_changed_files.sh '^test|^src/.*.[ch]' ; then echo GO=1 >> $GITHUB_ENV ; fi
- if: ${{ env.GO == 1 }}
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
2022-10-31 18:40:34 +08:00
armhf:
runs-on: ubuntu-latest
2022-09-26 14:55:27 +08:00
steps:
- uses: actions/checkout@v3
2023-02-06 23:18:40 +08:00
with: { fetch-depth: 2 }
2023-02-13 04:31:02 +08:00
- run: if ./test/match_changed_files.sh '^test|^src/.*.[ch]' ; then echo GO=1 >> $GITHUB_ENV ; fi
- if: ${{ env.GO == 1 }}
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
2022-09-22 17:34:38 +08:00
linux2:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
2023-02-06 23:18:40 +08:00
with: { fetch-depth: 2 }
2023-02-13 04:31:02 +08:00
- run: if ./test/match_changed_files.sh '^test|^src/.*.[ch]' ; then echo GO=1 >> $GITHUB_ENV ; fi
- if: ${{ env.GO == 1 }}
run: sudo apt -y update ; sudo apt -y install libmbedtls-dev valgrind
- if: ${{ env.GO == 1 }}
run: make unamalgamated && make valgrind && make mg_prefix
2020-12-18 19:09:03 +08:00
macos:
runs-on: macos-latest
2023-02-13 04:31:02 +08:00
env: { HOMEBREW_NO_AUTO_UPDATE: 1 }
2020-12-18 19:09:03 +08:00
steps:
- uses: actions/checkout@v3
2023-02-09 04:14:39 +08:00
with: { fetch-depth: 2 }
2023-02-13 04:31:02 +08:00
- run: if ./test/match_changed_files.sh '^test|^src/.*.[ch]' ; then echo GO=1 >> $GITHUB_ENV ; fi
- if: ${{ env.GO == 1 }}
run: brew install jq mbedtls openssl
#- if: ${{ env.GO == 1 }}
# run: make test upload-coverage TFLAGS=-DNO_SNTP_CHECK SSL=OPENSSL ASAN_OPTIONS= OPENSSL=`echo /usr/local/Cellar/openssl*/*`
2023-02-13 04:31:02 +08:00
- if: ${{ env.GO == 1 }}
2023-02-13 04:30:18 +08:00
run: make test SSL=MBEDTLS TFLAGS=-DNO_SNTP_CHECK ASAN_OPTIONS= MBEDTLS=`echo /usr/local/Cellar/mbedtls*/*`
2023-02-13 04:31:02 +08:00
- if: ${{ env.GO == 1 }}
2023-02-09 04:14:39 +08:00
run: make mg_prefix
2020-12-18 19:12:08 +08:00
windows:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with: { fetch-depth: 2 }
2023-02-13 04:31:02 +08:00
- run: if ./test/match_changed_files.sh '^test|^src/.*.[ch]' ; then echo GO=1 >> $GITHUB_ENV ; fi
- if: ${{ env.GO == 1 }}
run: make vc98 vc17 vc22 mingw mingw++
arm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: make arm
2022-09-22 17:34:38 +08:00
riscv:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: make riscv
2023-02-13 04:31:02 +08:00
examples:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: sudo apt -y install libmbedtls-dev libpcap-dev
- run: make clean examples
- run: make clean test MG_ENABLE_POLL=1
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
2023-03-01 01:14:57 +08:00
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
2023-07-21 07:16:48 +08:00
2023-02-13 04:31:02 +08:00
test_f7:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with: { fetch-depth: 2 }
2023-08-02 01:19:51 +08:00
- run: if ./test/match_changed_files.sh "^src|examples/device-dashboard|examples/stm32/nucleo-f7.*-make-" ; then echo GO=1 >> $GITHUB_ENV ; fi
2023-02-13 04:31:02 +08:00
- if: ${{ env.GO == 1 }}
run: sudo apt -y update; sudo apt -y install gcc-arm-none-eabi
- if: ${{ env.GO == 1 }}
2023-07-04 05:27:32 +08:00
run: make -C examples/stm32/nucleo-f746zg-make-baremetal-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}}
2023-02-13 04:31:02 +08:00
- if: ${{ env.GO == 1 }}
2023-08-02 01:19:51 +08:00
run: make -C examples/stm32/nucleo-f746zg-make-freertos-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}}
2023-04-18 04:02:52 +08:00
- if: ${{ env.GO == 1 }}
2023-08-03 02:50:11 +08:00
run: make -C examples/stm32/nucleo-f746zg-make-freertos-tcp test VCON_API_KEY=${{secrets.VCON_API_KEY}}
2023-08-22 06:11:50 +08:00
- run: echo GO=0 >> $GITHUB_ENV ; if ./test/match_changed_files.sh '^src|examples/device-dashboard|examples/stm32/nucleo-f7.*-cube-'; then echo GO=1 >> $GITHUB_ENV ; fi
2023-06-20 03:39:18 +08:00
- if: ${{ env.GO == 1 }}
2023-08-01 04:06:08 +08:00
run: make -C test/cube test PROJECTS=../../examples/stm32/nucleo-f746zg-cube-baremetal-builtin VCON_API_KEY=${{secrets.VCON_API_KEY}} DEVICE=5
2023-06-20 03:39:18 +08:00
- if: ${{ env.GO == 1 }}
2023-08-01 04:06:08 +08:00
run: make -C test/cube test PROJECTS=../../examples/stm32/nucleo-f746zg-cube-freertos-builtin VCON_API_KEY=${{secrets.VCON_API_KEY}} DEVICE=5
2023-06-20 03:39:18 +08:00
- if: ${{ env.GO == 1 }}
run: make -C test/cube test PROJECTS=../../examples/stm32/nucleo-f746zg-cube-freertos-lwip VCON_API_KEY=${{secrets.VCON_API_KEY}} DEVICE=5
2023-02-13 04:31:02 +08:00
test_f4:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with: { fetch-depth: 2 }
2023-08-02 01:19:51 +08:00
- run: if ./test/match_changed_files.sh "^src|examples/device-dashboard|examples/stm32/nucleo-f4.*-make-" ; then echo GO=1 >> $GITHUB_ENV ; fi
2023-02-13 04:31:02 +08:00
- if: ${{ env.GO == 1 }}
run: sudo apt -y update; sudo apt -y install gcc-arm-none-eabi
- if: ${{ env.GO == 1 }}
2023-07-04 05:27:32 +08:00
run: make -C examples/stm32/nucleo-f429zi-make-baremetal-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}}
2023-02-13 22:07:16 +08:00
- if: ${{ env.GO == 1 }}
2023-08-02 01:19:51 +08:00
run: make -C examples/stm32/nucleo-f429zi-make-freertos-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}}
2023-08-22 06:11:50 +08:00
- run: echo GO=0 >> $GITHUB_ENV ; if ./test/match_changed_files.sh '^src|examples/device-dashboard|examples/stm32/nucleo-f4.*-cube-'; then echo GO=1 >> $GITHUB_ENV ; fi
2023-06-21 01:35:59 +08:00
- if: ${{ env.GO == 1 }}
2023-08-01 04:06:08 +08:00
run: make -C test/cube test PROJECTS=../../examples/stm32/nucleo-f429zi-cube-baremetal-builtin VCON_API_KEY=${{secrets.VCON_API_KEY}} DEVICE=2
2023-06-21 22:32:10 +08:00
- if: ${{ env.GO == 1 }}
2023-08-01 04:06:08 +08:00
run: make -C test/cube test PROJECTS=../../examples/stm32/nucleo-f429zi-cube-freertos-builtin VCON_API_KEY=${{secrets.VCON_API_KEY}} DEVICE=2
- if: ${{ env.GO == 1 }}
run: make -C test/cube test PROJECTS=../../examples/stm32/nucleo-f429zi-cube-freertos-lwip VCON_API_KEY=${{secrets.VCON_API_KEY}} DEVICE=2
2023-02-13 04:31:02 +08:00
test_h7:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with: { fetch-depth: 3 }
2023-08-02 01:19:51 +08:00
- run: if ./test/match_changed_files.sh "^src|examples/device-dashboard|examples/stm32/nucleo-h7.*-make-" ; then echo GO=1 >> $GITHUB_ENV ; fi
2023-02-13 04:31:02 +08:00
- if: ${{ env.GO == 1 }}
run: sudo apt -y update; sudo apt -y install gcc-arm-none-eabi
- if: ${{ env.GO == 1 }}
2023-07-04 05:27:32 +08:00
run: make -C examples/stm32/nucleo-h743zi-make-baremetal-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}}
2023-08-09 01:34:13 +08:00
- if: ${{ env.GO == 1 }}
run: make -C examples/stm32/nucleo-h743zi-make-freertos-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}}
2023-08-22 06:11:50 +08:00
- run: echo GO=0 >> $GITHUB_ENV ; if ./test/match_changed_files.sh '^src|examples/device-dashboard|examples/stm32/nucleo-h7.*-cube-'; then echo GO=1 >> $GITHUB_ENV ; fi
2023-06-21 01:35:59 +08:00
- if: ${{ env.GO == 1 }}
2023-08-01 04:06:08 +08:00
run: make -C test/cube test PROJECTS=../../examples/stm32/nucleo-h743zi-cube-baremetal-builtin VCON_API_KEY=${{secrets.VCON_API_KEY}} DEVICE=6
2023-06-21 22:32:10 +08:00
- if: ${{ env.GO == 1 }}
2023-08-01 04:06:08 +08:00
run: make -C test/cube test PROJECTS=../../examples/stm32/nucleo-h743zi-cube-freertos-builtin VCON_API_KEY=${{secrets.VCON_API_KEY}} DEVICE=6
2023-02-13 04:31:02 +08:00
test_h5:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with: { fetch-depth: 3 }
- run: if ./test/match_changed_files.sh "^src|examples/device-dashboard|examples/stm32/nucleo-h5.*-make-" ; then echo GO=1 >> $GITHUB_ENV ; fi
- if: ${{ env.GO == 1 }}
run: sudo apt -y update; sudo apt -y install gcc-arm-none-eabi
- if: ${{ env.GO == 1 }}
run: make -C examples/stm32/nucleo-h563zi-make-baremetal-builtin test VCON_API_KEY=${{secrets.VCON_API_KEY}}
2023-03-10 20:59:56 +08:00
test_tm4c:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with: { fetch-depth: 2 }
2023-06-16 22:57:18 +08:00
- run: if ./test/match_changed_files.sh "^src|examples/device-dashboard|examples/ti/ek-tm4c" ; then echo GO=1 >> $GITHUB_ENV ; fi
2023-03-10 20:59:56 +08:00
- if: ${{ env.GO == 1 }}
run: sudo apt -y update; sudo apt -y install gcc-arm-none-eabi
- if: ${{ env.GO == 1 }}
run: make -C examples/ti/ek-tm4c1294xl-baremetal test VCON_API_KEY=${{secrets.VCON_API_KEY}}
- if: ${{ env.GO == 1 }}
run: make -C examples/ti/ek-tm4c1294xl-freertos test VCON_API_KEY=${{secrets.VCON_API_KEY}}
2023-08-22 06:11:50 +08:00
test_same54:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with: { fetch-depth: 2 }
- run: if ./test/match_changed_files.sh "^src|examples/device-dashboard|examples/microchip/same54" ; then echo GO=1 >> $GITHUB_ENV ; fi
- if: ${{ env.GO == 1 }}
run: sudo apt -y update; sudo apt -y install gcc-arm-none-eabi
- if: ${{ env.GO == 1 }}
run: make -C examples/microchip/same54/device-dashboard test VCON_API_KEY=${{secrets.VCON_API_KEY}}
- if: ${{ env.GO == 1 }}
run: make -C examples/microchip/same54/mqtt-client test VCON_API_KEY=${{secrets.VCON_API_KEY}}
2023-02-13 04:31:02 +08:00
test_pico_w5500:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with: { fetch-depth: 2 }
2023-06-16 22:57:18 +08:00
- run: if ./test/match_changed_files.sh "^src|examples/device-dashboard|examples/rp2040/pico-w5500" ; then echo GO=1 >> $GITHUB_ENV ; fi
2023-02-13 04:31:02 +08:00
- if: ${{ env.GO == 1 }}
run: sudo apt -y update; sudo apt -y install gcc-arm-none-eabi
- if: ${{ env.GO == 1 }}
run: make -C examples/rp2040/pico-w5500 test VCON_API_KEY=${{secrets.VCON_API_KEY}}
2023-07-21 07:16:48 +08:00
arduino:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with: { fetch-depth: 2 }
- run: if ./test/match_changed_files.sh '^examples/arduino|^src/.*.[ch]' ; then echo GO=1 >> $GITHUB_ENV ; fi
- if: ${{ env.GO == 1 }}
run: make -C examples/arduino arduino-xiao
# - if: ${{ env.GO == 1 }}
# run: make -C examples/arduino arduino-nano
- if: ${{ env.GO == 1 }}
run: make -C examples/arduino clean
matrix_examples:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
example:
2022-10-12 20:54:04 +08:00
- path: esp32/device-dashboard
- path: esp32/uart-bridge
2022-12-28 07:27:56 +08:00
- path: esp8266/http-client-server
2023-08-22 06:11:50 +08:00
- path: microchip/same54/device-dashboard
2023-08-22 06:24:33 +08:00
- path: microchip/same54/mqtt-client
2023-08-22 06:11:50 +08:00
- path: infineon/infineon-xmc4700_4800-lwip-rtx-rtos
2022-10-12 20:54:04 +08:00
- 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
2023-01-18 00:59:05 +08:00
- path: rp2040/pico-rmii
- path: rp2040/pico-rndis-dashboard
2023-01-03 02:29:21 +08:00
- path: rp2040/pico-w
- path: rp2040/pico-w5500
2023-08-22 06:11:50 +08:00
- path: stm32/nucleo-f429zi-make-baremetal-builtin
- path: stm32/nucleo-f429zi-make-freertos-builtin
- path: stm32/nucleo-f429zi-make-baremetal-builtin-rndis
- 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-rndis
- path: stm32/nucleo-h563zi-make-baremetal-builtin
2023-08-22 06:11:50 +08:00
- path: stm32/nucleo-h743zi-make-baremetal-builtin
- path: stm32/nucleo-h743zi-make-freertos-builtin
- path: ti/ti-ek-tm4c1294xl-http-server
- path: ti/ek-tm4c1294xl-baremetal
- path: ti/ek-tm4c1294xl-freertos
2022-10-19 16:24:19 +08:00
name: ${{ matrix.example.path }}
2022-10-07 03:32:33 +08:00
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
2023-02-13 04:31:02 +08:00
- if: ${{ env.GO == 1 }}
run: sudo apt -y update ; sudo apt -y install gcc-arm-none-eabi
- if: ${{ env.GO == 1 }}
run: make -C examples/${{ matrix.example.path }} build
cube_examples:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with: { fetch-depth: 2 }
- run: if ./test/match_changed_files.sh '^src|examples/stm32/nucleo-*-cube-*'; then echo GO=1 >> $GITHUB_ENV ; fi
- if: ${{ env.GO == 1 }}
run: cd test/cube && make
2022-11-15 03:35:24 +08:00
zephyr_examples:
2022-10-07 03:32:33 +08:00
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with: { fetch-depth: 2 }
2023-02-13 04:31:02 +08:00
- run: if ./test/match_changed_files.sh '^src/.*.[ch]|^examples/zephyr'; then sudo apt -y update ; sudo apt -y install gcc-arm-none-eabi ; fi
- if: ${{ env.GO == 1 }}
run: make -C examples/zephyr init
2022-11-15 03:35:24 +08:00
- name: minify manifest
2023-02-13 04:31:02 +08:00
if: ${{ env.GO == 1 }}
2022-11-15 03:35:24 +08:00
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
2023-02-13 04:31:02 +08:00
- if: ${{ env.GO == 1 }}
run: make -C examples/zephyr update
2023-02-13 04:31:02 +08:00
- if: ${{ env.GO == 1 }}
run: make -C examples/zephyr/device-dashboard build
2023-02-13 04:31:02 +08:00
- if: ${{ env.GO == 1 }}
run: make -C examples/zephyr/http-client build
2023-02-13 04:31:02 +08:00
- if: ${{ env.GO == 1 }}
run: make -C examples/zephyr/http-server build
2023-02-13 04:31:02 +08:00
- if: ${{ env.GO == 1 }}
run: make -C examples/zephyr/mqtt-aws-client build
2023-02-13 04:31:02 +08:00
- if: ${{ env.GO == 1 }}
run: make -C examples/zephyr/websocket-server build