Shorten build time: Move 'doc' generation into a separate job, and ru… #47
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: Build for Linux (Bookworm, libwlroots-0.18) | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
env: | |
INSTALL_PATH: "${HOME}/wlmaker" | |
INSTALL_LIBRARY_PATH: "${HOME}/wlmaker/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)" | |
INSTALL_PKGCONFIG_PATH: "${HOME}/wlmaker/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/pkgconfig/:${HOME}/wlmaker/share/pkgconfig/" | |
jobs: | |
build_matrix: | |
strategy: | |
matrix: | |
compiler: [ "gcc" ] | |
runs-on: ubuntu-latest | |
container: | |
image: debian:bookworm | |
steps: | |
- name: Install package dependencies. | |
run: | | |
apt-get update | |
apt-get install -y \ | |
bison \ | |
clang \ | |
cmake \ | |
flex \ | |
foot \ | |
git \ | |
glslang-dev \ | |
glslang-tools \ | |
gnustep-base-runtime \ | |
graphviz \ | |
libcairo2-dev \ | |
libgbm-dev \ | |
libinput-dev \ | |
libncurses-dev \ | |
libseat-dev \ | |
libudev-dev \ | |
libvulkan-dev \ | |
libwayland-dev \ | |
libxcb-composite0-dev \ | |
libxcb-dri3-dev \ | |
libxcb-ewmh-dev \ | |
libxcb-icccm4-dev \ | |
libxcb-present-dev \ | |
libxcb-render-util0-dev \ | |
libxcb-res0-dev \ | |
libxcb-xinput-dev \ | |
libxkbcommon-dev \ | |
libxml2-dev \ | |
meson \ | |
plantuml \ | |
seatd \ | |
wayland-protocols \ | |
xmlto \ | |
xsltproc \ | |
xwayland | |
- name: Checkout code, including git submodules. | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Configure and build dependencies/. | |
run: | | |
export CC="${{ matrix.compiler }}" | |
export PKG_CONFIG_PATH="${{ env.INSTALL_PKGCONFIG_PATH }}" | |
export LD_LIBRARY_PATH="${{ env.INSTALL_LIBRARY_PATH }}" | |
export PATH="${PATH}:${{ env.INSTALL_PATH }}/bin" | |
cmake -DCMAKE_INSTALL_PREFIX:PATH=${{ env.INSTALL_PATH }} dependencies/ -B dependencies/build/ | |
cmake --build dependencies/build | |
- name: Configure wlmaker through CMake. | |
run: | | |
export CC="${{ matrix.compiler }}" | |
export PKG_CONFIG_PATH="${{ env.INSTALL_PKGCONFIG_PATH }}" | |
export LD_LIBRARY_PATH="${{ env.INSTALL_LIBRARY_PATH }}" | |
export PATH="${PATH}:${{ env.INSTALL_PATH }}/bin" | |
cmake -DCMAKE_INSTALL_PREFIX:PATH=${{ env.INSTALL_PATH }} -B build/ | |
- name: Build wlmaker. | |
run: | | |
export CC="${{ matrix.compiler }}" | |
export LD_LIBRARY_PATH="${{ env.INSTALL_LIBRARY_PATH }}" | |
export PATH="${PATH}:${{ env.INSTALL_PATH }}/bin" | |
cmake --build build/ | |
- name: Run all tests. | |
run: | | |
export LD_LIBRARY_PATH="${{ env.INSTALL_LIBRARY_PATH }}" | |
ctest --test-dir build/ --build-run-dir build/ -V |