diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ec0fb1cf..cb547017 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,114 +1,114 @@ -# SPDX-FileCopyrightText: 2023 Klarälvdalens Datakonsult AB, a KDAB Group company -# -# SPDX-License-Identifier: MIT - -name: CI - -on: - push: - branches: - - master - - kdreports-2.2 - pull_request: - branches: - - master - - kdreports-2.2 - -jobs: - build: - runs-on: ${{ matrix.os }} - strategy: - fail-fast: true - matrix: - os: - - ubuntu-22.04 - - windows-2022 - - macos-13 - - build_type: - - Debug - - Release - - config: - - qt_version: "5.15" - - qt_version: "6.6.0" - - include: - - os: ubuntu-22.04 - build_type: Release - config: - qt_version: "6.6.0" - apt_pgks: - - llvm - pip_pgks: - - shiboken6-generator==6.6.0 pyside6==6.6.0 - - 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.config.modules }} - version: ${{ matrix.config.qt_version }} - cache: true - - - name: Checkout sources - uses: actions/checkout@v4 - - - 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 - - - name: Install Python dependencies (${{ join(matrix.config.pip_pgks, ' ') }}) - if: ${{ matrix.config.pip_pgks }} - run: echo ${{ join(matrix.config.pip_pgks, ' ') }} | xargs pip install - - - name: Hackery due Shiboken hardcoded paths - if: ${{ matrix.config.pip_pgks }} - run: | - sudo mkdir -p /opt/rh/gcc-toolset-10/root/usr/bin/ - sudo cp /usr/bin/g++-10 /opt/rh/gcc-toolset-10/root/usr/bin/c++ - sudo mkdir -p /opt/rh/gcc-toolset-10/root/usr/lib/gcc/x86_64-linux-gnu/10/ - sudo cp /usr/lib/gcc/x86_64-linux-gnu/10/cc1plus /opt/rh/gcc-toolset-10/root/usr/lib/gcc/x86_64-linux-gnu/10/ - - - 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: Configure project - run: > - cmake -S . -B ./build -G Ninja - -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} - --warn-uninitialized - -Werror=dev - -DKDReports_QT6=${{ startsWith(matrix.config.qt_version, '6.') }} - -DKDReports_PYTHON_BINDINGS=${{ matrix.config.pip_pgks }} - -DPython3_FIND_VIRTUALENV=ONLY - -DKDReports_TESTS=${{ matrix.build_type == 'Debug' }} - -DKDReports_EXAMPLES=${{ matrix.build_type == 'Debug' }} - -DKDReports_DOCS=${{ matrix.build_type == 'Debug' && runner.os == 'Linux' }} - - - name: Build Project - run: cmake --build ./build - - - name: Run tests on Linux (offscreen) - id: ctest_linux - 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 - id: ctest_non_linux - 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: ${{ steps.ctest_non_linux.conclusion == 'failure' || steps.ctest_linux.conclusion == 'failure' }} - with: - path: "./build/Testing/Temporary/LastTest.log" +## SPDX-FileCopyrightText: 2023 Klarälvdalens Datakonsult AB, a KDAB Group company +## +## SPDX-License-Identifier: MIT + +#name: CI + +#on: + #push: + #branches: + #- master + #- kdreports-2.2 + #pull_request: + #branches: + #- master + #- kdreports-2.2 + +#jobs: + #build: + #runs-on: ${{ matrix.os }} + #strategy: + #fail-fast: true + #matrix: + #os: + #- ubuntu-22.04 + #- windows-2022 + #- macos-13 + + #build_type: + #- Debug + #- Release + + #config: + #- qt_version: "5.15" + #- qt_version: "6.6.0" + + #include: + #- os: ubuntu-22.04 + #build_type: Release + #config: + #qt_version: "6.6.0" + #apt_pgks: + #- llvm + #pip_pgks: + #- shiboken6-generator==6.6.0 pyside6==6.6.0 + + #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.config.modules }} + #version: ${{ matrix.config.qt_version }} + #cache: true + + #- name: Checkout sources + #uses: actions/checkout@v4 + + #- 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 + + #- name: Install Python dependencies (${{ join(matrix.config.pip_pgks, ' ') }}) + #if: ${{ matrix.config.pip_pgks }} + #run: echo ${{ join(matrix.config.pip_pgks, ' ') }} | xargs pip install + + #- name: Hackery due Shiboken hardcoded paths + #if: ${{ matrix.config.pip_pgks }} + #run: | + #sudo mkdir -p /opt/rh/gcc-toolset-10/root/usr/bin/ + #sudo cp /usr/bin/g++-10 /opt/rh/gcc-toolset-10/root/usr/bin/c++ + #sudo mkdir -p /opt/rh/gcc-toolset-10/root/usr/lib/gcc/x86_64-linux-gnu/10/ + #sudo cp /usr/lib/gcc/x86_64-linux-gnu/10/cc1plus /opt/rh/gcc-toolset-10/root/usr/lib/gcc/x86_64-linux-gnu/10/ + + #- 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: Configure project + #run: > + #cmake -S . -B ./build -G Ninja + #-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} + #--warn-uninitialized + #-Werror=dev + #-DKDReports_QT6=${{ startsWith(matrix.config.qt_version, '6.') }} + #-DKDReports_PYTHON_BINDINGS=${{ matrix.config.pip_pgks }} + #-DPython3_FIND_VIRTUALENV=ONLY + #-DKDReports_TESTS=${{ matrix.build_type == 'Debug' }} + #-DKDReports_EXAMPLES=${{ matrix.build_type == 'Debug' }} + #-DKDReports_DOCS=${{ matrix.build_type == 'Debug' && runner.os == 'Linux' }} + + #- name: Build Project + #run: cmake --build ./build + + #- name: Run tests on Linux (offscreen) + #id: ctest_linux + #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 + #id: ctest_non_linux + #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: ${{ steps.ctest_non_linux.conclusion == 'failure' || steps.ctest_linux.conclusion == 'failure' }} + #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..cc6069c2 --- /dev/null +++ b/.github/workflows/nightly.yml @@ -0,0 +1,102 @@ +# 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 + +on: + schedule: + - cron: '0 3 * * *' + + # TODO remove after green + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: true + matrix: + os: + - ubuntu-22.04 + - windows-2022 + - macos-13 + + config: + - name: ci-python-qt6 + qt_version: "6.6.0" + apt_pgks: + - llvm + + include: + - os: ubuntu-22.04 + config: + name: ci-clang-tidy-qt5 + cmake_arg: '-DCMAKE_CXX_CLANG_TIDY=clang-tidy' + qt_version: "5.15" + + - os: ubuntu-22.04 + config: + 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 + + - uses: actions/setup-python@v4 + with: + cache: 'pip' + cache-dependency-path: '.github/workflows/pip-requirements.txt' + python-version: '3.9' + + - run: pip3.9 install -r .github/workflows/pip-requirements.txt + + - name: Make sure MSVC is found when Ninja generator is in use + if: ${{ runner.os == 'Windows' }} + uses: ilammy/msvc-dev-cmd@v1 + + - name: Hackery due Shiboken hardcoded paths + if: ${{ runner.os == 'Linux' }} + run: | + sudo mkdir -p /opt/rh/gcc-toolset-10/root/usr/bin/ + sudo cp /usr/bin/g++-10 /opt/rh/gcc-toolset-10/root/usr/bin/c++ + sudo mkdir -p /opt/rh/gcc-toolset-10/root/usr/lib/gcc/x86_64-linux-gnu/10/ + sudo cp /usr/lib/gcc/x86_64-linux-gnu/10/cc1plus /opt/rh/gcc-toolset-10/root/usr/lib/gcc/x86_64-linux-gnu/10/ + + - name: Configure project + run: > + cmake -S . -B ./build -G Ninja ${{ matrix.config.cmake_arg }} + -DCMAKE_BUILD_TYPE=Release + --warn-uninitialized + -Werror=dev + -DKDReports_QT6=${{ startsWith(matrix.config.qt_version, '6.') }} + -DKDReports_PYTHON_BINDINGS=${{ matrix.config.pip_pgks }} + -DPython3_FIND_VIRTUALENV=ONLY + + - name: Build Project + run: cmake --build ./build diff --git a/.github/workflows/pip-requirements.txt b/.github/workflows/pip-requirements.txt new file mode 100644 index 00000000..e8bae0df --- /dev/null +++ b/.github/workflows/pip-requirements.txt @@ -0,0 +1,2 @@ +shiboken6-generator == 6.6.0 +pyside6 == 6.6.0