9 # Set permissions at the job level.
19 compiler: [clang, gcc]
21 - uses: actions/checkout@v3
23 persist-credentials: false
24 - uses: actions/setup-python@v4
27 - name: Install dependencies
29 python -m pip install --upgrade meson PyYAML
32 doxygen libxcb-xkb-dev valgrind ninja-build \
33 libwayland-dev wayland-protocols bison graphviz
34 - name: Install xkeyboard-config
36 # Install master version of xkeyboard-config, in order to ensure
37 # its latest version works well with xkbcommon.
38 # HACK: We use meson to install, while it would be cleaner
39 # to create a proper package to install or use some PPA.
41 git clone --depth=1 https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config.git
44 meson setup $BUILDDIR -Dprefix=/usr
45 meson install -C $BUILDDIR
49 # -gdwarf-4 - see https://github.com/llvm/llvm-project/issues/56550.
50 CFLAGS='-gdwarf-4' meson setup build -Denable-cool-uris=true
52 CC: ${{ matrix.compiler }}
55 meson compile -C build
58 meson test -C build --print-errorlogs --no-suite python-tests
59 - name: Test with valgrind
61 meson test -C build --print-errorlogs --setup=valgrind --no-suite python-tests
62 - name: Upload test logs
63 uses: actions/upload-artifact@v3
69 - name: Ensure doxygen version is correct
71 doxygen --version > version.txt
72 echo "1.9.6" >> version.txt
73 if [ $(sort -V version.txt | tail -n1) != "1.9.6" ]; then
74 echo "Doxygen version 1.9.6 or earlier expected, see #347"
77 - name: Store doxygen docs for use by the pages workflow
78 uses: actions/upload-artifact@v3