name: linux on: push: branches: [ master ] pull_request: branches: [ master ] # Set permissions at the job level. permissions: {} jobs: linux: runs-on: ubuntu-22.04 permissions: contents: read strategy: matrix: compiler: [clang, gcc] steps: - uses: actions/checkout@v3 with: persist-credentials: false - uses: actions/setup-python@v4 with: python-version: '3.9' - name: Install dependencies run: | python -m pip install --upgrade meson PyYAML sudo apt update sudo apt install -y \ doxygen libxcb-xkb-dev valgrind ninja-build \ libwayland-dev wayland-protocols bison graphviz - name: Setup run: | # -gdwarf-4 - see https://github.com/llvm/llvm-project/issues/56550. CFLAGS='-gdwarf-4' meson setup build -Denable-cool-uris=true env: CC: ${{ matrix.compiler }} - name: Build run: | meson compile -C build - name: Test run: meson test -C build --print-errorlogs --no-suite python-tests - name: Test with valgrind run: meson test -C build --print-errorlogs --setup=valgrind --no-suite python-tests - name: Upload test logs uses: actions/upload-artifact@v3 if: failure() with: name: test logs path: | build/meson-logs/ - name: Ensure doxygen version is correct run: | doxygen --version > version.txt echo "1.9.6" >> version.txt if [ $(sort -V version.txt | tail -n1) != "1.9.6" ]; then echo "Doxygen version 1.9.6 or earlier expected, see #347" exit 1 fi - name: Store doxygen docs for use by the pages workflow uses: actions/upload-artifact@v3 if: success() with: name: doxygen-docs path: | build/html/