Skip to content

ci: Add Qt 6.11 sanitized workflow #65

ci: Add Qt 6.11 sanitized workflow

ci: Add Qt 6.11 sanitized workflow #65

Workflow file for this run

# SPDX-FileCopyrightText: 2023 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
#
# SPDX-License-Identifier: MIT
# Workflow for MinGW
#
# Do not merge with build-qt6.yml, the matrix is sufficiently different and half the steps as well.
name: CI Qt6 MinGW
on:
push:
branches:
- master
pull_request:
branches:
- master
workflow_dispatch:
inputs:
debug_enabled:
type: boolean
description: "Enable ssh for debugging purposes"
required: false
default: false
jobs:
build:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
qt_version:
- "6.9.0" # Minimum supported/tested on MinGW
- "6.10.1" # Bump to latest freely
preset:
- name: ci-dev-client-only
runs_tests: true
- name: ci-dev-client-and-ui
runs_tests: true
- name: ci-dev-probe-only
runs_tests: false
toolchain:
- arch: win64_llvm_mingw
tools_arg: tools_llvm_mingw1706 tools_ninja
mingw_path_segment: llvm-mingw1706_64
test_exclude_regex: "^(quicktexturetest|launchertest|clientconnectiontest)$"
- arch: win64_mingw
tools_arg: tools_mingw1310 tools_ninja
mingw_path_segment: mingw1310_64
test_exclude_regex: "^(quicktexturetest|launchertest|clientconnectiontest)$"
steps:
- name: Setup tmate session
if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled }}
uses: mxschmitt/action-tmate@v3
with:
detached: true
- name: Install Qt with options and default aqtversion
uses: jurplel/install-qt-action@v4
with:
aqtversion: null # use whatever the default is
modules: qtshadertools qtscxml
arch: ${{ matrix.toolchain.arch }}
tools: ${{ matrix.toolchain.tools_arg }}
version: ${{ matrix.qt_version }}
cache: true
- name: Checkout sources
uses: actions/checkout@v4
with:
submodules: recursive
- name: Add MinGW to PATH
run: |
echo "${Qt6_DIR}/../../../Tools/${{ matrix.toolchain.mingw_path_segment }}/bin" >> $GITHUB_PATH
echo "${Qt6_DIR}/../../../Tools/Ninja/bin" >> $GITHUB_PATH
- name: Install ninja-build tool (must be after Qt due PATH changes)
uses: turtlesec-no/get-ninja@main
# Don't make graphviz find wrong libgd
- name: Remove Strawberry from PATH
run: |
Remove-Item "C:/Strawberry" -Recurse -Force
- name: Configure project
run: >
cmake -S . -G Ninja --preset ${{ matrix.preset.name }}
-DGAMMARAY_WITH_KDSME=ON
-DWARNINGS_ARE_ERRORS=OFF
-DGAMMARAY_WITH_KDSME=OFF
-DGAMMARAY_BUILD_DOCS=${{ runner.os == 'Linux' }}
- name: Build Project
run: cmake --build ./build-${{ matrix.preset.name }}
- name: Run tests
if: ${{ matrix.preset.runs_tests }}
run: >
ctest --test-dir ./build-${{ matrix.preset.name }} --output-on-failure
--exclude-regex "${{ matrix.toolchain.test_exclude_regex }}"
- name: Read tests log when it fails
uses: andstor/file-reader-action@v1
if: ${{ failure() }}
with:
path: "./build-${{ matrix.preset.name }}/Testing/Temporary/LastTest.log"