Full build #875
This file contains hidden or 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 | |
| on: | |
| schedule: | |
| - cron: '0 22 * * *' # run at 10 PM 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] | |
| ssl: ["", BUILTIN, MBEDTLS, OPENSSL, WOLFSSL] | |
| 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" | |
| - ssl: WOLFSSL | |
| select: "-DMG_ENABLE_POLL=0 -DMG_ENABLE_EPOLL=0" | |
| - ssl: WOLFSSL | |
| select: "-DMG_ENABLE_POLL=1 -DMG_ENABLE_EPOLL=0" | |
| include: | |
| - ssl: BUILTIN | |
| cc: gcc | |
| target: test | |
| select: "-DMG_ENABLE_POLL=0 -DMG_ENABLE_EPOLL=1 -DMG_ENABLE_CHACHA20=0" | |
| name: linux ${{ matrix.target }} CC=${{ matrix.cc }} SSL=${{ matrix.ssl }} TFLAGS=${{ matrix.select }} | |
| env: | |
| CC: ${{ matrix.cc }} | |
| SSL: ${{ matrix.ssl }} | |
| TFLAGS: ${{ matrix.select }} -DMQTT_LOCALHOST -DNO_ABORT | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: { fetch-depth: 2 } | |
| - uses: webfactory/ssh-agent@v0.9.1 | |
| with: | |
| ssh-private-key: ${{ secrets.HEALTH_TESTS_SSH_KEY }} | |
| - run: sudo apt -y update ; sudo apt -y install libmbedtls-dev libwolfssl-dev && test/setup_mqtt_server.sh && make -C test ${{ matrix.target }} > log | |
| - if: success() || failure() | |
| run: | | |
| cat log | |
| test/health.awk < log > json | |
| scp -o "StrictHostKeyChecking=no" json "root@176.9.217.245:/data/downloads/health/linux_${{ matrix.target }}_${{ matrix.cc }}_${{ matrix.ssl }}_${{ matrix.select }}_$(date +"%Y%m%d").json" | |
| mip: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| cc: [gcc, clang, g++, clang++] | |
| target: [mip_test, mip_tap_test] | |
| ssl: ["", BUILTIN, MBEDTLS, OPENSSL, WOLFSSL] | |
| # #3226: built-in TCP is currently not working with WolfSSL (builds fine) | |
| exclude: | |
| - ssl: WOLFSSL | |
| target: mip_tap_test | |
| name: ${{ matrix.target }} CC=${{ matrix.cc }} SSL=${{ matrix.ssl }} | |
| env: | |
| CC: ${{ matrix.cc }} | |
| SSL: ${{ matrix.ssl }} | |
| IPV6: 1 | |
| TFLAGS: -DMQTT_HOST -DIPV6_NOROUTING -DNO_ABORT # -DMQTT_HOST_NAME=\"server\" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: { fetch-depth: 2 } | |
| - uses: webfactory/ssh-agent@v0.9.1 | |
| with: | |
| ssh-private-key: ${{ secrets.HEALTH_TESTS_SSH_KEY }} | |
| - run: if [ "${{ matrix.target }}" == "mip_tap_test" ]; then source ./test/setup_ga_network.sh ; sed -i -e "s/127.0.0.1//" test/mosquitto.conf; cat test/mosquitto.conf; ./test/setup_mqtt_server.sh; fi && sudo apt -y update ; sudo apt -y install libmbedtls-dev libwolfssl-dev && make -C test ${{ matrix.target }} > log | |
| - if: success() || failure() | |
| run: | | |
| cat log | |
| test/health.awk < log > json | |
| scp -o "StrictHostKeyChecking=no" json "root@176.9.217.245:/data/downloads/health/${{ matrix.target }}_${{ matrix.cc }}_${{ matrix.ssl }}_$(date +"%Y%m%d").json" | |
| mip89: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 1 # no parallel runs, to minimize MQTT errors | |
| matrix: | |
| target: [mip_vc98] | |
| name: mip89 ${{ matrix.target }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: { fetch-depth: 2 } | |
| - run: make -C test ${{ matrix.target }} IPV6=1 | |
| s390: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ssl: ["", BUILTIN] | |
| name: S390 SSL=${{ matrix.ssl }} | |
| env: | |
| TFLAGS: -DMQTT_LOCALHOST | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: { fetch-depth: 2 } | |
| - run: sudo apt -y update ; sudo apt -y install binfmt-support qemu-user-static && ./test/setup_mqtt_server.sh && docker run --rm --privileged multiarch/qemu-user-static --reset -p yes && make -C test s390 SSL=${{ matrix.ssl }} MULTIREC=NO | |
| armhf: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ssl: ["", BUILTIN] | |
| name: ArmHF SSL=${{ matrix.ssl }} | |
| env: | |
| TFLAGS: -DMQTT_LOCALHOST | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: { fetch-depth: 2 } | |
| - run: sudo apt -y update ; sudo apt -y install binfmt-support qemu-user-static && ./test/setup_mqtt_server.sh && docker run --rm --privileged multiarch/qemu-user-static --reset -p yes && make -C test armhf SSL=${{ matrix.ssl }} MULTIREC=NO | |
| unamalgamated-mg_prefix: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ssl: ["", BUILTIN, MBEDTLS, OPENSSL, WOLFSSL] | |
| name: unamalgamated-mg_prefix SSL=${{ matrix.ssl }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: { fetch-depth: 2 } | |
| - run: sudo apt -y update ; sudo apt -y install libmbedtls-dev libwolfssl-dev | |
| - run: make -C test unamalgamated SSL=${{ matrix.ssl }} && make -C test mg_prefix | |
| valgrind: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ssl: ["", BUILTIN, MBEDTLS, OPENSSL, WOLFSSL] | |
| name: Valgrind SSL=${{ matrix.ssl }} | |
| env: | |
| TFLAGS: -DMQTT_LOCALHOST | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: { fetch-depth: 2 } | |
| - run: sudo apt -y update ; sudo apt -y install libmbedtls-dev libwolfssl-dev valgrind | |
| - run: ./test/setup_mqtt_server.sh && make -C test valgrind SSL=${{ matrix.ssl }} | |
| macos: | |
| runs-on: macos-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ssl: ["", BUILTIN, MBEDTLS, OPENSSL, WOLFSSL] | |
| select: [-DMG_ENABLE_POLL=0, -DMG_ENABLE_POLL=1] | |
| exclude: | |
| - ssl: MBEDTLS | |
| select: -DMG_ENABLE_POLL=0 | |
| - ssl: MBEDTLS # see issue#2694 | |
| select: -DMG_ENABLE_POLL=1 | |
| - ssl: OPENSSL | |
| select: -DMG_ENABLE_POLL=0 | |
| - ssl: WOLFSSL | |
| select: -DMG_ENABLE_POLL=0 | |
| name: macos SSL=${{ matrix.ssl }} TFLAGS=${{ matrix.select }} | |
| env: | |
| SSL: ${{ matrix.ssl }} | |
| TFLAGS: ${{ matrix.select }} -DMQTT_LOCALHOST ${{ matrix.env.tflags }} -DNO_ABORT -Wno-sign-conversion -Wno-undef # Workarounds for MbedTLS | |
| HOMEBREW_NO_AUTO_UPDATE: 1 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: { fetch-depth: 2 } | |
| - uses: webfactory/ssh-agent@v0.9.1 | |
| with: | |
| ssh-private-key: ${{ secrets.HEALTH_TESTS_SSH_KEY }} | |
| - run: brew install mbedtls wolfssl mosquitto gawk # jq openssl already pre-installed | |
| - run: /opt/homebrew/opt/mosquitto/sbin/mosquitto -c /Users/runner/work/mongoose/mongoose/test/mosquitto.conf.macos & | |
| - run: make -C test test ASAN_OPTIONS= MBEDTLS=$(echo $(brew --cellar)/mbedtls*/*) OPENSSL=$(echo $(brew --cellar)/openssl*/*) WOLFSSL=$(echo $(brew --cellar)/wolfssl*/*) > log | |
| - if: success() || failure() | |
| run: | | |
| cat log | |
| test/health.awk < log > json | |
| scp -o "StrictHostKeyChecking=no" json "root@176.9.217.245:/data/downloads/health/macos_test_cc_${{ matrix.ssl }}_${{ matrix.select }}_$(date +"%Y%m%d").json" | |
| windows: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 1 # no parallel runs, to minimize MQTT errors | |
| matrix: | |
| target: [vc98, vc17, vc22, mingw, mingw++] | |
| ssl: ["", BUILTIN] | |
| select: [-DMG_ENABLE_POLL=0, -DMG_ENABLE_POLL=1] | |
| exclude: | |
| - target: vc98 | |
| select: -DMG_ENABLE_POLL=1 | |
| name: windows ${{ matrix.target }} SSL=${{ matrix.ssl }} TFLAGS=${{ matrix.select }} | |
| env: | |
| SSL: ${{ matrix.ssl }} | |
| TFLAGS: ${{ matrix.select }} -DMQTT_LOCALHOST -DNO_ABORT | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: { fetch-depth: 2 } | |
| - uses: webfactory/ssh-agent@v0.9.1 | |
| with: | |
| ssh-private-key: ${{ secrets.HEALTH_TESTS_SSH_KEY }} | |
| - run: ./test/setup_mqtt_server.sh && make -C test ${{ matrix.target }} > log | |
| - if: success() || failure() | |
| run: | | |
| cat log | |
| test/health.awk < log > json | |
| scp -o "StrictHostKeyChecking=no" json "root@176.9.217.245:/data/downloads/health/windows_${{ matrix.target }}_${{ matrix.cc }}_${{ matrix.ssl }}_${{ matrix.select }}_$(date +"%Y%m%d").json" | |
| arm: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ssl: ["", BUILTIN] | |
| name: Arm SSL=${{ matrix.ssl }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - run: make -C test arm SSL=${{ matrix.ssl }} | |
| riscv: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ssl: ["", BUILTIN] | |
| name: RISC-V SSL=${{ matrix.ssl }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - run: make -C test riscv SSL=${{ matrix.ssl }} | |
| tutorials: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ssl: [-DMG_TLS=MG_TLS_NONE, -DMG_TLS=MG_TLS_BUILTIN] | |
| name: tutorials ${{ matrix.ssl }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: webfactory/ssh-agent@v0.9.1 | |
| with: | |
| ssh-private-key: ${{ secrets.HEALTH_TESTS_SSH_KEY }} | |
| - run: sudo apt -y install libpcap-dev | |
| - run: make -C test tutorials CFLAGS_EXTRA="${{ matrix.ssl }}" > log | |
| - if: success() || failure() | |
| run: | | |
| cat log | |
| test/health.awk < log > json | |
| scp -o "StrictHostKeyChecking=no" json "root@176.9.217.245:/data/downloads/health/tutorials_${{ matrix.ssl }}_$(date +"%Y%m%d").json" | |
| - run: make -C test clean_tutorials | |
| tutorials_win: | |
| runs-on: windows-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ssl: [-DMG_TLS=MG_TLS_NONE, -DMG_TLS=MG_TLS_BUILTIN] | |
| name: tutorials_win ${{ matrix.ssl }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # - uses: egor-tensin/setup-mingw@v2 | |
| # with: | |
| # platform: x64 | |
| - name: test they build | |
| run: make -C test tutorials_win CFLAGS_EXTRA="${{ matrix.ssl }}" | |
| shell: cmd | |
| - name: test they clean | |
| run: make -C test clean_tutorials_win | |
| shell: cmd | |
| tutorials_mac: | |
| runs-on: macos-latest | |
| env: { HOMEBREW_NO_AUTO_UPDATE: 1 } | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ssl: [-DMG_TLS=MG_TLS_NONE, -DMG_TLS=MG_TLS_BUILTIN] | |
| name: tutorials_mac ${{ matrix.ssl }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - run: make -C test tutorials_mac CFLAGS_EXTRA="${{ matrix.ssl }}" | |
| - run: make -C test clean_tutorials_mac | |
| arduino: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: { fetch-depth: 2 } | |
| - run: echo # nothing specific to install or do | |
| - run: make -C test/arduino | |
| - run: make -C test/arduino cleanall | |
| # wizard_examples: | |
| # runs-on: ubuntu-latest | |
| # strategy: | |
| # fail-fast: false | |
| # matrix: | |
| # example: | |
| # - path: esp32/esp32-idf | |
| # name: ${{ matrix.example.path }} | |
| # env: | |
| # GO: 0 | |
| # steps: | |
| # - uses: actions/checkout@v4 | |
| # with: { fetch-depth: 2 } | |
| # - run: echo # nothing specific to install or do | |
| # fi | |
| # - run: make -C tutorials/${{ matrix.example.path }} build | |
| wizard_examples_arm: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| example: | |
| - path: infineon/xmc47_relax-make-baremetal-builtin | |
| - path: infineon/xmc_plt2go_4400-make-baremetal-builtin | |
| - path: infineon/xmc72_evk-make-baremetal-builtin | |
| - path: nxp/frdm-mcxn947-make-baremetal-builtin | |
| - path: nxp/frdm-mcxn947-make-freertos-builtin | |
| - path: nxp/rt1020-evk-make-baremetal-builtin | |
| - path: nxp/rt1060-evk-make-baremetal-builtin | |
| - path: nxp/rt1170-evk-make-baremetal-builtin | |
| - path: rp/pico-w | |
| - path: rp/w5500-evb-pico | |
| - path: rp/w55rp20-evb-pico | |
| - path: rp/pico-rndis | |
| - path: stm32/nucleo-f429zi/minimal | |
| - path: stm32/nucleo-f746zg/minimal | |
| - path: stm32/nucleo-f746zg/minimal-pppoe | |
| - path: stm32/nucleo-f756zg/minimal | |
| - path: stm32/nucleo-h563zi/minimal | |
| - path: stm32/nucleo-h723zg/minimal | |
| - path: stm32/nucleo-h743zi/minimal | |
| - path: stm32/nucleo-n657x0-q/minimal | |
| - path: stm32/nucleo-u5a5zj-q/minimal | |
| - path: stm32/portenta-h7/minimal | |
| - path: stm32/stm32h573i-dk/minimal | |
| - path: stm32/stm32h747i-disco/minimal | |
| - path: ti/ek-tm4c1294xl-make-baremetal-builtin | |
| - path: ti/ek-tm4c1294xl-make-freertos-builtin | |
| name: ${{ matrix.example.path }} | |
| env: | |
| GO: 0 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: { fetch-depth: 2 } | |
| - run: sudo apt -y update && sudo apt -y install gcc-arm-none-eabi | |
| - run: make -C tutorials/${{ matrix.example.path }} build | |
| generic_examples: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| example: | |
| - path: micropython/esp32 | |
| - path: http/uart-bridge/esp32 | |
| - path: http/http-client/esp8266/http-client-server | |
| name: ${{ matrix.example.path }} | |
| env: | |
| GO: 0 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: { fetch-depth: 2 } | |
| - run: echo # nothing specific to install or do | |
| - run: make -C tutorials/${{ matrix.example.path }} build | |
| generic_examples_arm: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| example: | |
| - path: mqtt/mqtt-client/microchip/same54-xpro | |
| - 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: rp/pico-rmii | |
| - path: stm32/nucleo-f746zg/minimal-rm2 | |
| - path: stm32/nucleo-f746zg/minimal-rndis | |
| - path: stm32/nucleo-f429zi/minimal-rm2 | |
| - path: stm32/nucleo-f429zi/minimal-rndis | |
| - path: stm32/nucleo-g031k8/minimal-w5500 | |
| - path: ti/ti-ek-tm4c1294xl-http-server | |
| - path: ti/ek-tm4c1294xl-make-baremetal-builtin-rndis | |
| name: ${{ matrix.example.path }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: { fetch-depth: 2 } | |
| - run: sudo apt -y update && sudo apt -y install gcc-arm-none-eabi | |
| - run: make -C tutorials/${{ matrix.example.path }} build | |
| device_dashboard_examples: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| example: | |
| - path: esp32 | |
| name: ${{ matrix.example.path }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: { fetch-depth: 2 } | |
| - run: echo # nothing specific to install or do | |
| - run: make -C tutorials/http/device-dashboard/${{ matrix.example.path }} build | |
| device_dashboard_examples_arm: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ssl: ["", -DMG_TLS=MG_TLS_BUILTIN] | |
| example: | |
| - path: http/device-dashboard/microchip/same54-xpro | |
| - path: nxp/rt1020-evk-make-freertos-builtin | |
| - path: nxp/rt1060-evk-make-freertos-builtin | |
| - path: nxp/rt1170-evk-make-freertos-builtin | |
| - path: renesas/ek-ra6m4-make-baremetal-builtin | |
| name: ${{ matrix.example.path }} ${{ matrix.ssl }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: { fetch-depth: 2 } | |
| - run: sudo apt -y update && sudo apt -y install gcc-arm-none-eabi | |
| - run: make -C tutorials/${{ matrix.example.path }} build CFLAGS_EXTRA="${{ matrix.ssl }}" | |
| # mqtt_dashboard_examples: | |
| # runs-on: ubuntu-latest | |
| # strategy: | |
| # fail-fast: false | |
| # matrix: | |
| # example: | |
| # - path: | |
| # name: ${{ matrix.example.path }} | |
| # steps: | |
| # - uses: actions/checkout@v4 | |
| # with: { fetch-depth: 2 } | |
| # - run: echo # nothing specific to install or do | |
| # - run: make -C tutorials/${{ 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@v4 | |
| # with: { fetch-depth: 2 } | |
| # - run: echo # nothing specific to install or do | |
| # - run: make -C tutorials/${{ matrix.example.path }} device_dashboard | |
| # - run: make -C tutorials/${{ matrix.example.path }} mqtt_dashboard | |
| cube_examples: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: { fetch-depth: 2 } | |
| - run: sudo pip install yq | |
| - run: cd test/cube && make | |
| # xpresso_examples: | |
| # runs-on: ubuntu-latest | |
| # steps: | |
| # - uses: actions/checkout@v4 | |
| # with: { fetch-depth: 2 } | |
| # - run: sudo pip install yq | |
| # - run: cd test/xpresso && make |