From 1edd360766b4f927ad754c19f1c9afdd5de91fc9 Mon Sep 17 00:00:00 2001 From: Shaun Reed Date: Sat, 8 Mar 2025 12:08:35 -0500 Subject: [PATCH] CI --- .github/workflows/all-builds.yml | 38 ++++++++++++++++++-------------- .github/workflows/linting.yml | 14 ++++++------ tools/build-qt.sh | 3 +++ tools/format.sh | 8 +++++++ 4 files changed, 39 insertions(+), 24 deletions(-) create mode 100644 tools/build-qt.sh create mode 100755 tools/format.sh diff --git a/.github/workflows/all-builds.yml b/.github/workflows/all-builds.yml index fbc3abe..65e24a4 100644 --- a/.github/workflows/all-builds.yml +++ b/.github/workflows/all-builds.yml @@ -10,6 +10,7 @@ env: jobs: Qtk: + name: Qtk Applications env: CONFIG: -DQTK_SUBMODULES=ON -DQTK_DEBUG=OFF -DQTK_CCACHE=OFF -DQTK_GUI=ON -DQTK_PLUGINS=OFF -DQTK_EXAMPLE=ON strategy: @@ -29,10 +30,10 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install Qt - uses: jurplel/install-qt-action@v2 + uses: jurplel/install-qt-action@v4 with: version: ${{ env.QT_VERSION }} @@ -82,7 +83,7 @@ jobs: - name: Upload package artifacts (DEB) if: matrix.os == 'ubuntu-latest' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: qtk-gui-${{ matrix.os }} path: | @@ -97,7 +98,7 @@ jobs: - name: Upload package artifacts (WIN) if: matrix.os == 'windows-latest' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: qtk-gui-${{ matrix.os }} path: | @@ -112,14 +113,14 @@ jobs: - name: Upload package artifacts (OSX) if: matrix.os == 'macos-latest' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: qtk-gui-${{ matrix.os }} path: | build/packages/*.tar.gz - name: Upload Qtk install directory - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: qtk-gui-${{ matrix.os }}-install path: install/* @@ -132,7 +133,7 @@ jobs: # cmake --build build/ --target package_source # # - name: Upload package artifacts -# uses: actions/upload-artifact@v3 +# uses: actions/upload-artifact@v4 # with: # name: qtk-${{ matrix.os }}-packages # path: | @@ -140,6 +141,7 @@ jobs: # !build/packages/_CPack_Packages/* Qtk-Library: + name: Qtk library env: CONFIG: -DQTK_SUBMODULES=ON -DQTK_DEBUG=OFF -DQTK_CCACHE=OFF -DQTK_GUI=OFF -DQTK_PLUGINS=OFF -DQTK_EXAMPLE=OFF strategy: @@ -159,10 +161,10 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install Qt - uses: jurplel/install-qt-action@v2 + uses: jurplel/install-qt-action@v4 with: version: ${{ env.QT_VERSION }} @@ -201,7 +203,7 @@ jobs: - name: Upload package artifacts (DEB) if: matrix.os == 'ubuntu-latest' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: libqtk-${{ matrix.os }} path: | @@ -216,7 +218,7 @@ jobs: - name: Upload package artifacts (WIN) if: matrix.os == 'windows-latest' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: qtk-${{ matrix.os }} path: | @@ -231,20 +233,21 @@ jobs: - name: Upload package artifacts (OSX) if: matrix.os == 'macos-latest' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: qtk-${{ matrix.os }} path: | build/packages/*.tar.gz - name: Upload libqtk install - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: always() with: name: libqtk-${{ matrix.os }}-install path: install/* Qtk-Plugins: + name: Qtk Qt Designer Plugins env: CONFIG: -DQTK_SUBMODULES=ON -DQTK_DEBUG=OFF -DQTK_CCACHE=OFF -DQTK_GUI=OFF -DQTK_PLUGINS=ON -DQTK_EXAMPLE=OFF strategy: @@ -264,10 +267,10 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install Qt - uses: jurplel/install-qt-action@v2 + uses: jurplel/install-qt-action@v4 with: version: ${{ env.QT_VERSION }} @@ -292,6 +295,7 @@ jobs: run: cmake --install build/ --config Release --component qtk_plugins Qtk-Assimp-Targets: + name: Qtk Assimp Platform Targets strategy: fail-fast: false matrix: @@ -304,10 +308,10 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install Qt - uses: jurplel/install-qt-action@v2 + uses: jurplel/install-qt-action@v4 with: version: ${{ env.QT_VERSION }} diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index fd01ba9..f461a2a 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -9,10 +9,10 @@ jobs: Tidy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install Qt - uses: jurplel/install-qt-action@v2 + uses: jurplel/install-qt-action@v4 with: version: '6.5.0' @@ -22,7 +22,7 @@ jobs: - name: Build Qtk run: | cmake -B build -DQTK_SUBMODULES=OFF -DQTK_CCACHE=OFF -DQTK_PLUGINS=OFF -DQTK_GUI=ON - cmake --build build --target qtk_gui -- -j $(nproc) + cmake --build build --target qtk_gui qtk_example -- -j $(nproc) - uses: cpp-linter/cpp-linter-action@v2 id: linter @@ -30,7 +30,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: # Use clang-tools 14 - version: '14' + version: '18' # Don't use clang-format with this action # + Set to `file` to use .clang-format (Qtk formats with clang 15) style: '' @@ -57,12 +57,12 @@ jobs: matrix: path: - 'src' - - 'app' + - 'example-app' steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: clang-format Check uses: jidicula/clang-format-action@v4.9.0 with: - clang-format-version: '15' + clang-format-version: '18' check-path: ${{ matrix.path }} diff --git a/tools/build-qt.sh b/tools/build-qt.sh new file mode 100644 index 0000000..1329677 --- /dev/null +++ b/tools/build-qt.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + + diff --git a/tools/format.sh b/tools/format.sh new file mode 100755 index 0000000..914e7e5 --- /dev/null +++ b/tools/format.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +cd .. +cmake -B build && cmake --build build -- -j $(nproc --ignore=1) +clang-tidy -p build/ --fix --config-file=.clang-tidy \ + src/**/*.cpp src/**/*.h example-app/*.cpp example-app/*.h +clang-format -i --style=file:.clang-format \ + src/**/*.cpp src/**/*.h example-app/*.cpp example-app/*.h