Skip to content

[pre-commit.ci] pre-commit autoupdate #760

[pre-commit.ci] pre-commit autoupdate

[pre-commit.ci] pre-commit autoupdate #760

Workflow file for this run

# SPDX-FileCopyrightText: 2023 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
#
# SPDX-License-Identifier: MIT
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build-android:
runs-on: ubuntu-latest
container:
image: saschpe/android-ndk:35-jdk23.0.2_7-ndk28.0.13004108-cmake3.31.5
env:
CMAKE_TOOLCHAIN_FILE: /opt/android-sdk-linux/ndk/28.0.13004108/build/cmake/android.toolchain.cmake
CMAKE_GENERATOR: Ninja
steps:
- run: echo "/opt/android-sdk-linux/cmake/3.31.5/bin/:/opt/android-sdk-linux/ndk/28.0.13004108/prebuilt/linux-x86_64/bin/" >> $GITHUB_PATH
- name: Install dependencies
run: |
git clone https://github.com/gabime/spdlog && cd spdlog && cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/opt/android-sdk-linux/ndk/28.0.13004108/prebuilt/linux-x86_64/ && cd build && ninja install
git clone https://github.com/KDAB/KDBindings && cd KDBindings && cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/opt/android-sdk-linux/ndk/28.0.13004108/prebuilt/linux-x86_64/ && cd build && ninja install
- name: Checkout sources
uses: actions/checkout@v4
with:
submodules: true
- name: Build KDUtils
run: |
cmake -S . -B build -DANDROID=ON -DKDUTILS_USE_EXTERNAL_DEPENDENCIES=ON && cmake --build build
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os:
- ubuntu-24.04
- ubuntu-22.04
- ubuntu-24.04-arm
- windows-11-arm
- windows-2022
- windows-2025
- macos-14
- macos-15
- macos-26
build_type:
- Debug
- Release
link_type:
- static
- shared
steps:
- name: Checkout sources
uses: actions/checkout@v4
with:
submodules: true
- name: Install ninja-build tool
if: ${{ runner.os != 'Linux' }}
uses: urkle/action-get-ninja@e3ed0d4fc9ec9608cdc970133d71c980b6149631 #v1
- name: Make sure MSVC is found when Ninja generator is in use
uses: ilammy/msvc-dev-cmd@v1
- name: Install linux dependencies
if: runner.os == 'Linux'
run: |
sudo apt update -qq
sudo apt install -y libxkbcommon-dev libxcb-xkb-dev \
libxkbcommon-x11-dev wayland-scanner++ wayland-protocols \
libwayland-dev xvfb ninja-build \
gcovr
- name: Configure project
run: >
cmake -S . -B ./build -G Ninja
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
-DKDUTILS_CODE_COVERAGE=${{ matrix.build_type == 'Debug' && runner.os == 'Linux' }}
-DKDUTILS_BUILD_TESTS=${{ matrix.build_type == 'Debug' }}
-DBUILD_SHARED_LIBS=${{ matrix.link_type == 'shared' }}
- name: Build Project
run: cmake --build ./build
- name: Run tests on Windows/macOS
if: ${{ matrix.build_type == 'Debug' && runner.os != 'Linux' }}
run: ctest --test-dir ./build -C ${{ matrix.build_type }} --output-on-failure
- name: Run tests on Linux
if: ${{ matrix.build_type == 'Debug' && runner.os == 'Linux' }}
run: xvfb-run ctest --test-dir ./build -C ${{ matrix.build_type }} --output-on-failure
- name: Read tests log when it fails
uses: andstor/file-reader-action@v1
if: ${{ failure() && matrix.build_type == 'Debug' }}
with:
path: "./build/Testing/Temporary/LastTest.log"