Skip to content

Add initial KDNetwork library #611

Add initial KDNetwork library

Add initial KDNetwork library #611

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:
runs-on: ${{ matrix.platform.os }}
strategy:
fail-fast: true
matrix:
platform:
- os: ubuntu-24.04
triplet: x64-linux-release
- os: ubuntu-22.04
triplet: x64-linux-release
- os: ubuntu-24.04-arm
triplet: arm64-linux-release
- os: windows-2022
triplet: x64-windows-release
- os: macos-13
triplet: x64-osx-release
- os: macos-14
triplet: arm64-osx-release
- os: macos-15
triplet: arm64-osx-release
build_type:
- Debug
- Release
link_type:
- static
- shared
env:
MOSQUITTO_VERSION: 2.0.20
steps:
- name: Checkout sources
uses: actions/checkout@v4
- 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 \
libmosquitto-dev gcovr \
linux-libc-dev
- name: Download mosquitto (MacOS)
if: runner.os == 'macOS'
run: |
brew install mosquitto
- name: Download mosquitto (Windows)
if: runner.os == 'Windows'
run: |
curl --no-progress-meter --location --remote-name `
https://mosquitto.org/files/binary/win64/mosquitto-$env:MOSQUITTO_VERSION-install-windows-x64.exe
& .\mosquitto-$env:MOSQUITTO_VERSION-install-windows-x64.exe /S
- name: Set up vcpkg
id: vcpkg
uses: johnwason/vcpkg-action@v6
with:
token: ${{ github.token }}
triplet: ${{ matrix.platform.triplet }}
manifest-dir: ${{ github.workspace }}
- 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' }}
-DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake
-DVCPKG_TARGET_TRIPLET=${{ matrix.platform.triplet }}
-DVCPKG_MANIFEST_MODE=OFF
${{ steps.vcpkg.outputs.vcpkg-cmake-config }}
- 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"