name: build on: [push, pull_request_target] jobs: linux: runs-on: ubuntu-latest strategy: fail-fast: false matrix: cc: [gcc, clang, g++, clang++] target: [test, mip_test] ssl: [MBEDTLS, OPENSSL] name: linux ${{ matrix.target }} CC=${{ matrix.cc }} SSL=${{ matrix.ssl }} env: IPV6: 0 CC: ${{ matrix.cc }} SSL: ${{ matrix.ssl }} steps: - uses: actions/checkout@v3 - run: sudo apt-get update ; sudo apt-get install libmbedtls-dev - run: make ${{ matrix.target }} linux_bigendian: runs-on: ubuntu-latest strategy: fail-fast: false matrix: targets: - target: ppc64 toolchain: powerpc64-linux-gnu qemu: qemu-ppc64-static name: linux-bigendian ${{ matrix.targets.target }} env: IPV6: 0 CC: ${{ matrix.targets.toolchain }}-gcc OPTS: -O3 -g3 -static SSL: ASAN: ASAN_OPTIONS: RUN: ${{ matrix.targets.qemu }} -L /usr/${{ matrix.targets.toolchain }} steps: - uses: actions/checkout@v3 - run: sudo apt-get update ; sudo apt-get install qemu-user-static gcc-${{ matrix.targets.toolchain }} - run: make test linux2: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - run: sudo apt-get update ; sudo apt-get install libmbedtls-dev valgrind - run: make unamalgamated SSL= - run: make valgrind IPV6=0 - run: make mg_prefix examples: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - run: sudo apt-get install libmbedtls-dev libpcap-dev - run: make clean examples - run: make clean test IPV6=0 MG_ENABLE_POLL=1 macos: runs-on: macos-latest steps: - uses: actions/checkout@v3 - run: HOMEBREW_NO_AUTO_UPDATE=1 brew install jq mbedtls openssl - run: make test upload-coverage SSL=OPENSSL IPV6=0 ASAN_OPTIONS= OPENSSL=`echo /usr/local/Cellar/openssl*/*` - run: make test SSL=MBEDTLS IPV6=0 ASAN_OPTIONS= MBEDTLS=`echo /usr/local/Cellar/mbedtls*/*` - run: make mip_test ASAN_OPTIONS= - run: make mg_prefix windows: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - run: make vc98 - run: make vc17 - run: make vc22 - run: make mingw - run: make mingw++ 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 matrix_examples: runs-on: ubuntu-latest strategy: fail-fast: false matrix: example: - name: esp32/device-dashboard path: esp32/device-dashboard - name: esp8266 path: esp8266 - name: stm32-freertos-tcp path: stm32/stm32-freertos-tcp - name: stm32-nucleo-f746z path: stm32/stm32-nucleo-f746z - name: stm32-nucleo-f429z path: stm32/stm32-nucleo-f429z - name: stm32-nucleo-h743z path: stm32/stm32-nucleo-h743z - name: stm32-nucleo-f746zg-baremetal path: stm32/nucleo-f746zg-baremetal - name: nxp-mimxrt1020-azurertos path: nxp/nxp-mimxrt1020-azurertos - name: nxp-frdmk66f-freertos path: nxp/nxp-frdmk66f-freertos - name: nxp-lpcxpresso54s018m-freertos path: nxp/nxp-lpcxpresso54s018m-freertos - name: nxp-mimxrt1020-freertos path: nxp/nxp-mimxrt1020-freertos - name: nxp-evkbimxrt1050-lwip-freertos path: nxp/nxp-evkbimxrt1050-lwip-freertos - name: nxp-evkmimxrt1020-lwip-freertos path: nxp/nxp-evkmimxrt1020-lwip-freertos - name: nxp-evkmimxrt1024-lwip-freertos path: nxp/nxp-evkmimxrt1024-lwip-freertos - name: nxp-evkmimxrt1060-lwip-freertos path: nxp/nxp-evkmimxrt1060-lwip-freertos - name: nxp-evkmimxrt1064-lwip-freertos path: nxp/nxp-evkmimxrt1064-lwip-freertos - name: nxp-evkmimxrt1160-cm7-lwip-freertos path: nxp/nxp-evkmimxrt1160-cm7-lwip-freertos - name: nxp-evkmimxrt1170-cm7-lwip-freertos path: nxp/nxp-evkmimxrt1170-cm7-lwip-freertos - name: nxp-frdmk64f-lwip-freertos path: nxp/nxp-frdmk64f-lwip-freertos - name: nxp-frdmk66f-lwip-freertos path: nxp/nxp-frdmk66f-lwip-freertos - name: nxp-lpcxpresso54018-lwip-freertos path: nxp/nxp-lpcxpresso54018-lwip-freertos - name: nxp-lpcxpresso54608-lwip-freertos path: nxp/nxp-lpcxpresso54608-lwip-freertos - name: nxp-lpcxpresso54618-lwip-freertos path: nxp/nxp-lpcxpresso54618-lwip-freertos - name: nxp-lpcxpresso54628-lwip-freertos path: nxp/nxp-lpcxpresso54628-lwip-freertos - name: nxp-twrk65f180m-lwip-freertos path: nxp/nxp-twrk65f180m-lwip-freertos - name: nxp-twrkv58f220m-lwip-freertos path: nxp/nxp-twrkv58f220m-lwip-freertos - name: infineon-xmc4700_4800-lwip-rtx-rtos path: infineon/infineon-xmc4700_4800-lwip-rtx-rtos - name: ti path: ti/ti-ek-tm4c1294xl-http-server - name: nucleo_f746zg-zephyr-http-client path: zephyr/http-client - name: nucleo_f746zg-zephyr-http-server path: zephyr/http-server - name: nucleo_f746zg-zephyr-mqtt-aws-client path: zephyr/mqtt-aws-client - name: nucleo_f746zg-zephyr-websocket-server path: zephyr/websocket-server name: ${{ matrix.example.name }} steps: - uses: actions/checkout@v3 - name: ${{ matrix.example.name }} run: make -C examples/${{ matrix.example.path }} build