name: CI on: [push, pull_request] jobs: build: strategy: matrix: compiler: [gcc, clang] env: CC: ${{ matrix.compiler }} LSAN_OPTIONS: verbosity=1:log_threads=1 WGET_PATH: http://download.savannah.nongnu.org/releases/lwip CONTRIB: contrib-2.1.0 runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install deps run: | sudo apt-get install check ninja-build doxygen wget --no-verbose ${WGET_PATH}/${CONTRIB}.zip unzip -oq ${CONTRIB}.zip patch -s -p0 < test/${CONTRIB}.patch - name: Build and Run unit tests with make run: | export LWIPDIR=../../../../src && cd ${CONTRIB}/ports/unix/check make -j 4 check make clean export EXTRA_CFLAGS="-DESP_LWIP=1" && export CC="${CC} $EXTRA_CFLAGS" make -j 4 check make clean export EXTRA_CFLAGS="-DESP_LWIP=1 -DIP_FORWARD=1" && export CC="${CC} $EXTRA_CFLAGS" make -j 4 check make clean export EXTRA_CFLAGS="-DESP_LWIP=1 -DIP_FORWARD=1 -DIP_NAPT=1 -DLWIP_ARCH_CC_H -include cc_esp_platform.h" && export CC="${CC} $EXTRA_CFLAGS" make -j 4 check - name: Run cmake run: mkdir build && cd build && cmake .. -G Ninja - name: Build with cmake run: cd build && cmake --build . - name: Build docs with cmake run: cd build && cmake --build . --target lwipdocs - name: Validate combinations of options run: | cp ${CONTRIB}/examples/example_app/lwipcfg.h.example ${CONTRIB}/examples/example_app/lwipcfg.h cd ${CONTRIB}/ports/unix/example_app export CFLAGS="-DESP_LWIP=LWIP_NETCONN_FULLDUPLEX -DESP_LWIP_IGMP_TIMERS_ONDEMAND=ESP_LWIP -DESP_LWIP_MLD6_TIMERS_ONDEMAND=ESP_LWIP -DESP_DNS=ESP_LWIP -DESP_LWIP_ARP=ESP_LWIP" export LWIPDIR=../../../../src/ make TESTFLAGS="-Wno-documentation" -j 4 chmod +x iteropts.sh && ./iteropts.sh - name: Build and run unit tests with cmake run: | cd ${CONTRIB}/ports/unix/check mkdir build && cd build && cmake -DLWIP_DIR=`pwd`/../../../../.. .. -G Ninja cmake --build . && ./lwip_unittests