name: CI on: [push, pull_request] jobs: build-and-test: strategy: matrix: compiler: [gcc, clang] env: CC: ${{ matrix.compiler }} LSAN_OPTIONS: verbosity=1:log_threads=1 WGET_CHECK2JUNIT_PY: https://raw.githubusercontent.com/gsauthof/utility/42792030/check2junit.py runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install deps run: | sudo apt-get install check ninja-build doxygen python -m pip install lxml junit-xml wget --no-verbose ${WGET_CHECK2JUNIT_PY} - name: Build and Run unit tests with make and cmake run: ./test/ci/unit_tests.sh - name: Copy lwipcfg.h for example app run: cp contrib/examples/example_app/lwipcfg.h.ci contrib/examples/example_app/lwipcfg.h - 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: ./test/ci/validate_opts.sh - name: Build and run test apps run: ./test/ci/test_apps.sh - name: Upload Test Results if: always() uses: actions/upload-artifact@v4 with: name: Test Results ${{ matrix.compiler }} path: "*.xml" publish-test-results: name: "Publish Tests Results" needs: build-and-test runs-on: ubuntu-latest permissions: checks: write if: always() steps: - name: Download Artifacts uses: actions/download-artifact@v4 with: path: artifacts - name: Publish Test Results uses: EnricoMi/publish-unit-test-result-action@v2 with: junit_files: "artifacts/**/*.xml"