tests: Improve xkeyboard-config script #619
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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@v4 | |
with: | |
persist-credentials: false | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade meson PyYAML ruff | |
sudo apt update | |
sudo apt install -y \ | |
doxygen libxcb-xkb-dev valgrind ninja-build \ | |
libwayland-dev wayland-protocols bison graphviz libicu-dev | |
- name: Install xkeyboard-config | |
run: | | |
# Install master version of xkeyboard-config, in order to ensure | |
# its latest version works well with xkbcommon. | |
# HACK: We use meson to install, while it would be cleaner | |
# to create a proper package to install or use some PPA. | |
pushd ~ | |
git clone --depth=1 https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config.git | |
cd "xkeyboard-config" | |
BUILDDIR=build | |
meson setup $BUILDDIR -Dprefix=/usr | |
meson install -C $BUILDDIR | |
popd | |
- name: Setup | |
run: | | |
# -gdwarf-4 - see https://github.com/llvm/llvm-project/issues/56550. | |
CFLAGS='-gdwarf-4' meson setup build -Denable-docs=true -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/ | |
- name: Ruff format | |
run: | |
ruff format --line-length=88 --check --diff . |