Skip to content

Commit

Permalink
CI: Add nightly and fix current to use master branch
Browse files Browse the repository at this point in the history
  • Loading branch information
dantti committed Nov 13, 2023
1 parent b805f06 commit 2376745
Show file tree
Hide file tree
Showing 7 changed files with 90 additions and 15 deletions.
22 changes: 11 additions & 11 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ name: CI
on:
push:
branches:
- 2.0
- master
pull_request:
branches:
- 2.0
- master

jobs:
build:
Expand All @@ -19,12 +19,9 @@ jobs:
fail-fast: true
matrix:
os:
- ubuntu-22.04
- ubuntu-20.04
- windows-2022
- windows-2019
- macos-13
- macos-12
- ubuntu-latest
- windows-latest
#- macos-latest

config:
- qt_version: "5.15"
Expand All @@ -44,6 +41,9 @@ jobs:
- name: Checkout sources
uses: actions/checkout@v4

- name: Fetch Git submodule
run: git submodule update --init --recursive

- name: Make sure MSVC is found when Ninja generator is in use
if: ${{ runner.os == 'Windows' }}
uses: ilammy/msvc-dev-cmd@v1
Expand All @@ -56,17 +56,17 @@ jobs:

- name: Run tests on Linux (offscreen)
if: ${{ runner.os == 'Linux' }}
run: ctest --test-dir ./build-${{ matrix.preset.name }} --output-on-failure
run: ctest --test-dir ./build --output-on-failure
env:
QT_QPA_PLATFORM: offscreen
QT_QUICK_BACKEND: software

- name: Run tests on Window/macOS
if: ${{ runner.os != 'Linux' }}
run: ctest --test-dir ./build-${{ matrix.preset.name }} --output-on-failure
run: ctest --test-dir ./build --output-on-failure

- name: Read tests log when it fails
uses: andstor/file-reader-action@v1
if: ${{ failure() && startsWith(matrix.preset.name, 'ci-dev-') }}
with:
path: "./build-${{ matrix.preset.name }}/Testing/Temporary/LastTest.log"
path: "./build/Testing/Temporary/LastTest.log"
68 changes: 68 additions & 0 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# SPDX-FileCopyrightText: 2023 Klarälvdalens Datakonsult AB, a KDAB Group company <[email protected]>
#
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only

name: CI Nightly

on:
schedule:
- cron: '0 3 * * *'

push:
branches:
- master
pull_request:
branches:
- master

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os:
- ubuntu-latest

config:
- name: clang-tidy
cmake_arg: '-DCMAKE_CXX_CLANG_TIDY=clang-tidy'
qt_version: "5.15"

- name: clazy
cmake_arg: '-DCMAKE_CXX_COMPILER=clazy'
qt_version: "6.6.0"
apt_pgks:
- clazy

steps:
- name: Install Qt ${{ matrix.config.qt_version }} with options and default aqtversion
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.config.qt_version }}
cache: true

- name: Install ninja-build tool (must be after Qt due PATH changes)
uses: turtlesec-no/get-ninja@main

- name: Install dependencies on Ubuntu (${{ join(matrix.config.apt_pgks, ' ') }})
if: ${{ runner.os == 'Linux' && matrix.config.apt_pgks }}
run: |
sudo apt update -qq
echo ${{ join(matrix.config.apt_pgks, ' ') }} | xargs sudo apt install -y
- uses: actions/checkout@v4
#with:
#ref: '2.0' # schedule.cron do not allow branch setting

- name: Fetch Git submodule
run: git submodule update --init --recursive

- name: Configure project
run: >
cmake -S . -B ./build -G Ninja ${{ matrix.config.cmake_arg }}
--warn-uninitialized -Werror=dev
-DCMAKE_BUILD_TYPE=Debug
- name: Build Project
run: cmake --build ./build
3 changes: 2 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ project(KDToolBox LANGUAGES CXX)

option(KDTOOLBOX_CXX20 "Enabling C++20 tests" OFF)

include(GNUInstallDirs)

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")

set(CMAKE_INCLUDE_CURRENT_DIR ON)
Expand All @@ -18,7 +20,6 @@ set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE TRUE)
set(CMAKE_LINK_DEPENDS_NO_SHARED TRUE)

set(QT_REQUIRED_VERSION "5.15.0")
set(QT_VERSION_MAJOR 5) # KDAB CI fails with Qt6
if(NOT DEFINED QT_VERSION_MAJOR)
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
endif()
Expand Down
4 changes: 3 additions & 1 deletion qt/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ add_subdirectory(model_view)
add_subdirectory(notify_guard)
add_subdirectory(pointer_cast)
add_subdirectory(qml)
add_subdirectory(qt_fmt)
add_subdirectory(qt_hasher)
add_subdirectory(singleshot_connect)
add_subdirectory(tabWindow)
Expand All @@ -24,4 +23,7 @@ add_subdirectory(qt6_natvis)
if(QT_VERSION_MAJOR EQUAL 5)
# Qt6 has it's own QStringTokenizer
add_subdirectory(stringtokenizer)

# fails to build with with Qt6
add_subdirectory(qt_fmt)
endif()
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
#
# SPDX-License-Identifier: MIT
#

set(CMAKE_CXX_STANDARD 14)

find_package(
Qt${QT_VERSION_MAJOR}
${QT_REQUIRED_VERSION}
Expand Down
1 change: 1 addition & 0 deletions qt/qt6_natvis/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,8 @@ void tst_QStringTokenizer::basics() const
QFETCH(const Qt::CaseSensitivity, cs);

auto expected = QStringList{
QStringLiteral(""), QStringLiteral("a"), QStringLiteral("b"), QStringLiteral("c"),
QStringLiteral("d"), QStringLiteral("e"), QStringLiteral(""),
QLatin1String(""), QStringLiteral("a"), QStringLiteral("b"), QStringLiteral("c"),
QStringLiteral("d"), QStringLiteral("e"), QLatin1String(""),
};
if (sb & Qt::SkipEmptyParts)
expected = skipped(expected);
Expand Down

0 comments on commit 2376745

Please sign in to comment.