From c2e5491c34ea857f76d18a2115874277bae5c903 Mon Sep 17 00:00:00 2001 From: Daniel Nicoletti Date: Sun, 12 Nov 2023 14:04:23 -0300 Subject: [PATCH] CI: Nightly for clazy and clang-tidy --- .github/workflows/build.yml | 130 +++++++++++++++++----------------- .github/workflows/nightly.yml | 65 +++++++++++++++++ 2 files changed, 130 insertions(+), 65 deletions(-) create mode 100644 .github/workflows/nightly.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e69f6c91..cf09933d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,78 +1,78 @@ -# SPDX-FileCopyrightText: 2023 Klarälvdalens Datakonsult AB, a KDAB Group company -# -# SPDX-License-Identifier: MIT +## SPDX-FileCopyrightText: 2023 Klarälvdalens Datakonsult AB, a KDAB Group company +## +## SPDX-License-Identifier: MIT -name: CI +#name: CI -on: [push, pull_request] +#on: [push, pull_request] -jobs: - build: - runs-on: ${{ matrix.os }} - strategy: - fail-fast: true - matrix: - os: - - ubuntu-22.04 - - ubuntu-20.04 - - windows-2022 - - windows-2019 - - macos-12 - - macos-11 - build_type: - - Debug - - Release - qt: - - version: "5.15.2" - requested: "5.15" - - version: "6.3.2" # Qt 6.3 is not an LTS version, so '6.3.*' always resolves to '6.3.2' - requested: "6.3.*" +#jobs: + #build: + #runs-on: ${{ matrix.os }} + #strategy: + #fail-fast: true + #matrix: + #os: + #- ubuntu-22.04 + #- ubuntu-20.04 + #- windows-2022 + #- windows-2019 + #- macos-12 + #- macos-11 + #build_type: + #- Debug + #- Release + #qt: + #- version: "5.15.2" + #requested: "5.15" + #- version: "6.3.2" # Qt 6.3 is not an LTS version, so '6.3.*' always resolves to '6.3.2' + #requested: "6.3.*" - steps: - - name: Install Qt with options and default aqtversion - uses: jurplel/install-qt-action@v3 - with: - aqtversion: null # use whatever the default is - modules: ${{ matrix.qt.modules }} - version: ${{ matrix.qt.requested }} - cache: true + #steps: + #- name: Install Qt with options and default aqtversion + #uses: jurplel/install-qt-action@v3 + #with: + #aqtversion: null # use whatever the default is + #modules: ${{ matrix.qt.modules }} + #version: ${{ matrix.qt.requested }} + #cache: true - - name: Checkout sources - uses: actions/checkout@v4 + #- name: Checkout sources + #uses: actions/checkout@v4 - - name: Create build directory - run: mkdir build + #- name: Create build directory + #run: mkdir build - - name: Install ninja-build tool (must be after Qt due PATH changes) - uses: turtlesec-no/get-ninja@main + #- name: Install ninja-build tool (must be after Qt due PATH changes) + #uses: turtlesec-no/get-ninja@main - - name: Make sure MSVC is found when Ninja generator is in use - uses: ilammy/msvc-dev-cmd@v1 + #- name: Make sure MSVC is found when Ninja generator is in use + #uses: ilammy/msvc-dev-cmd@v1 - - name: Configure project - run: > - cmake -S . -B ./build -G Ninja - -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} - -DKDChart_QT6=${{ startsWith(matrix.qt.version, '6.') }} - -DKDChart_TESTS=${{ matrix.build_type == 'Debug' }} - -DKDChart_EXAMPLES=${{ matrix.build_type == 'Debug' }} - -DKDChart_DOCS=${{ matrix.build_type == 'Debug' && runner.os == 'Linux' }} + #- name: Configure project + #run: > + #cmake -S . -B ./build -G Ninja + #-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} + #-DKDChart_QT6=${{ startsWith(matrix.qt.version, '6.') }} + #-DKDChart_TESTS=${{ matrix.build_type == 'Debug' }} + #-DKDChart_EXAMPLES=${{ matrix.build_type == 'Debug' }} + #-DKDChart_DOCS=${{ matrix.build_type == 'Debug' && runner.os == 'Linux' }} - - name: Build Project - run: cmake --build ./build + #- name: Build Project + #run: cmake --build ./build - - name: Run tests on Linux (offscreen) - if: ${{ matrix.build_type == 'Debug' && runner.os == 'Linux' }} - run: ctest --test-dir ./build -C ${{ matrix.build_type }} --output-on-failure - env: - QT_QPA_PLATFORM: offscreen + #- name: Run tests on Linux (offscreen) + #if: ${{ matrix.build_type == 'Debug' && runner.os == 'Linux' }} + #run: ctest --test-dir ./build -C ${{ matrix.build_type }} --output-on-failure + #env: + #QT_QPA_PLATFORM: offscreen - - name: Run tests on Windown/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 Windown/macOS + #if: ${{ matrix.build_type == 'Debug' && runner.os != 'Linux' }} + #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" + #- 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" diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml new file mode 100644 index 00000000..eb4acf96 --- /dev/null +++ b/.github/workflows/nightly.yml @@ -0,0 +1,65 @@ +# SPDX-FileCopyrightText: 2023 Klarälvdalens Datakonsult AB, a KDAB Group company +# +# 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-22.04 + + 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: "5.15" + 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: Configure project + run: > + cmake -S . -B ./build -G Ninja ${{ matrix.config.cmake_arg }} + --warn-uninitialized -Werror=dev + -DCMAKE_BUILD_TYPE=Debug + -DKDChart_TESTS=ON + + - name: Build Project + id: ctest + run: cmake --build ./build