Update CI for new targets

This commit is contained in:
Shaun Reed 2023-01-29 18:26:36 -05:00
parent b3484ced03
commit c60f90f93a
3 changed files with 199 additions and 45 deletions

View File

@ -7,17 +7,19 @@ on:
jobs: jobs:
Build-Qtk: Build-Qtk:
env:
CONFIG: -DQTK_UPDATE_SUBMODULES=ON -DQTK_DEBUG=OFF -DQTK_ENABLE_CCACHE=OFF -DQTK_INSTALL_GUI=ON -DQTK_INSTALL_LIB=ON -DQTK_INSTALL_PLUGINS=OFF
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ubuntu-latest, windows-latest, macos-latest] os: [ubuntu-latest, windows-latest, macos-latest]
include: include:
- os: ubuntu-latest - os: ubuntu-latest
cmake: -DCMAKE_PREFIX_PATH="/home/runner/work/qtk/Qt/6.5.0/gcc_64/" cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/6.5.0/gcc_64/ $CONFIG
- os: windows-latest - os: windows-latest
cmake: -DCMAKE_PREFIX_PATH="D:/a/qtk/qtk/Qt/6.5.0/mingw81_64/" cmake: -DCMAKE_PREFIX_PATH=D:/a/qtk/qtk/Qt/6.5.0/mingw81_64/ $CONFIG
- os: macos-latest - os: macos-latest
cmake: -DCMAKE_PREFIX_PATH="/home/runner/work/qtk/Qt/6.5.0/gcc_64/" cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/6.5.0/gcc_64/ $CONFIG
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
@ -28,71 +30,222 @@ jobs:
with: with:
version: '6.5.0' version: '6.5.0'
# Windows
- name: Chocolatey Action - name: Chocolatey Action
if: matrix.os == 'windows-latest' if: matrix.os == 'windows-latest'
uses: crazy-max/ghaction-chocolatey@v2 uses: crazy-max/ghaction-chocolatey@v2
with: with:
args: install pkgconfiglite --checksum e87b5ea3c9142256af60f2d5b917aa63b571e6a0 --checksum-type sha1 args: install pkgconfiglite --checksum e87b5ea3c9142256af60f2d5b917aa63b571e6a0 --checksum-type sha1
- name: Build Qtk - name: Configure Qtk Application (Windows)
if: matrix.os == 'windows-latest' if: matrix.os == 'windows-latest'
shell: bash shell: bash
run: | run: cmake -B build/ ${{ matrix.cmake }}
cmake -B build/ ${{ matrix.cmake }} -DQTK_UPDATE_SUBMODULES=ON -DQTK_DEBUG=OFF -DQTK_ENABLE_CCACHE=OFF
cmake --build build/ --config Release
- name: Build Qtk - name: Build Qtk Application (Windows)
if: matrix.os != 'windows-latest'
shell: bash
run: |
cmake -B build/ ${{ matrix.cmake }} -DQTK_UPDATE_SUBMODULES=ON -DQTK_DEBUG=OFF -DQTK_ENABLE_CCACHE=OFF
cmake --build build/ --config Release -- -j $(nproc)
- name: Install Qtk
shell: bash
run: |
cmake --install build/ --config Release --prefix=$(pwd)/install
- uses: actions/upload-artifact@v3
if: always()
with:
name: qtk-${{ matrix.os }}-install
path: install/*
- name: Package Qtk
if: matrix.os == 'windows-latest' if: matrix.os == 'windows-latest'
shell: bash shell: bash
run: | run: cmake --build build/ --config Release
cd build/
cmake --build . --target package --config Release
- name: Package Qtk # OSX / Linux
- name: Configure Qtk Application (OSX / Linux)
if: matrix.os != 'windows-latest' if: matrix.os != 'windows-latest'
shell: bash shell: bash
run: | run: cmake -B build/ ${{ matrix.cmake }}
cd build/
cmake --build . --target package --config Release -- -j $(nproc)
# - name: Package Qtk Sources - name: Build Qtk Application (OSX / Linux)
if: matrix.os != 'windows-latest'
shell: bash
run: cmake --build build/ --config Release -- -j $(nproc)
# Packaging
- name: Install Qtk Application
shell: bash
run: cmake --install build/ --config Release --prefix=$(pwd)/install
- name: Package Qtk Application
shell: bash
run: cmake --build build/ --target package --config Release
# - uses: actions/upload-artifact@v3
# if: always()
# with:
# name: qtk-${{ matrix.os }}-install
# path: install/*
# TODO: Enable after trimming resources.
# - name: Package Qtk Application Sources
# if: matrix.os != 'macos-latest' # if: matrix.os != 'macos-latest'
# shell: bash # shell: bash
# run: | # run: |
# cmake --build build/ --target package_source # cmake --build build/ --target package_source
- uses: actions/upload-artifact@v3 # - name: Upload package artifacts
# uses: actions/upload-artifact@v3
# if: always()
# with:
# name: qtk-packages-${{ matrix.os }}
# path: |
# build/packages/
# !build/packages/_CPack_Packages/*
- name: Upload logs on failure
uses: actions/upload-artifact@v3
if: ${{ failure() && matrix.os == 'windows-latest' }} if: ${{ failure() && matrix.os == 'windows-latest' }}
with: with:
name: qtk-packages-${{ matrix.os }} name: qtk-failed-packages-${{ matrix.os }}
path: | path: |
build/_CPack_Packages/win64/NSIS/NSISOutput.log build/_CPack_Packages/win64/NSIS/NSISOutput.log
- uses: actions/upload-artifact@v3 Build-Qtk-Library:
if: always() env:
CONFIG: -DQTK_UPDATE_SUBMODULES=ON -DQTK_DEBUG=OFF -DQTK_ENABLE_CCACHE=OFF -DQTK_INSTALL_GUI=OFF -DQTK_INSTALL_LIB=ON -DQTK_INSTALL_PLUGINS=OFF
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
include:
- os: ubuntu-latest
cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/6.5.0/gcc_64/ $CONFIG
- os: windows-latest
cmake: -DCMAKE_PREFIX_PATH=D:/a/qtk/qtk/Qt/6.5.0/mingw81_64/ $CONFIG
- os: macos-latest
cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/6.5.0/gcc_64/ $CONFIG
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Install Qt
uses: jurplel/install-qt-action@v2
with: with:
name: qtk-packages-${{ matrix.os }} version: '6.5.0'
# Windows
- name: Chocolatey Action
if: matrix.os == 'windows-latest'
uses: crazy-max/ghaction-chocolatey@v2
with:
args: install pkgconfiglite --checksum e87b5ea3c9142256af60f2d5b917aa63b571e6a0 --checksum-type sha1
- name: Configure Qtk Library (Windows)
if: matrix.os == 'windows-latest'
shell: bash
run: cmake -B build/ ${{ matrix.cmake }}
- name: Build Qtk Library (Windows)
if: matrix.os == 'windows-latest'
shell: bash
run: cmake --build build/ --config Release
# OSX / Linux
- name: Configure Qtk Library (OSX / Linux)
if: matrix.os != 'windows-latest'
shell: bash
run: cmake -B build/ ${{ matrix.cmake }}
- name: Build Qtk Library (OSX / Linux)
if: matrix.os != 'windows-latest'
shell: bash
run: cmake --build build/ --config Release -- -j $(nproc)
# Packaging
- name: Install Qtk Library
shell: bash
run: cmake --install build/ --config Release --prefix=$(pwd)/install
- name: Package Qtk Library
shell: bash
run: cmake --build build/ --target package --config Release
# - uses: actions/upload-artifact@v3
# if: always()
# with:
# name: libqtk-${{ matrix.os }}-install
# path: install/*
# - name: Upload package artifacts
# uses: actions/upload-artifact@v3
# if: always()
# with:
# name: libqtk-packages-${{ matrix.os }}
# path: |
# build/packages/
# !build/packages/_CPack_Packages/*
- name: Upload logs on failure
uses: actions/upload-artifact@v3
if: ${{ failure() && matrix.os == 'windows-latest' }}
with:
name: libqtk-failed-packages-${{ matrix.os }}
path: | path: |
build/packages/ build/_CPack_Packages/win64/NSIS/NSISOutput.log
!build/packages/_CPack_Packages/*
Build-Qtk-Plugins:
env:
CONFIG: -DQTK_UPDATE_SUBMODULES=ON -DQTK_DEBUG=OFF -DQTK_ENABLE_CCACHE=OFF -DQTK_INSTALL_GUI=ON -DQTK_INSTALL_LIB=OFF -DQTK_INSTALL_PLUGINS=ON
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
include:
- os: ubuntu-latest
cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/6.5.0/gcc_64/ $CONFIG
- os: windows-latest
cmake: -DCMAKE_PREFIX_PATH=D:/a/qtk/qtk/Qt/6.5.0/mingw81_64/ $CONFIG
- os: macos-latest
cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/6.5.0/gcc_64/ $CONFIG
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Install Qt
uses: jurplel/install-qt-action@v2
with:
version: '6.5.0'
# Windows
- name: Chocolatey Action
if: matrix.os == 'windows-latest'
uses: crazy-max/ghaction-chocolatey@v2
with:
args: install pkgconfiglite --checksum e87b5ea3c9142256af60f2d5b917aa63b571e6a0 --checksum-type sha1
- name: Configure Qtk Plugins (Windows)
if: matrix.os == 'windows-latest'
shell: bash
run: cmake -B build/ ${{ matrix.cmake }}
- name: Build Qtk Plugins (Windows)
if: matrix.os == 'windows-latest'
shell: bash
run: cmake --build build/ --config Release
# OSX / Linux
- name: Configure Qtk Plugins (OSX / Linux)
if: matrix.os != 'windows-latest'
shell: bash
run: cmake -B build/ ${{ matrix.cmake }}
- name: Build Qtk Plugins (OSX / Linux)
if: matrix.os != 'windows-latest'
shell: bash
run: cmake --build build/ --config Release -- -j $(nproc)
# Packaging
- name: Install Qtk Plugins
shell: bash
run: cmake --install build/ --config Release --prefix=$(pwd)/install
Build-Qtk-Assimp-Targets: Build-Qtk-Assimp-Targets:
strategy: strategy:
@ -101,9 +254,9 @@ jobs:
os: [ubuntu-latest, macos-latest] os: [ubuntu-latest, macos-latest]
include: include:
- os: ubuntu-latest - os: ubuntu-latest
cmake: -DCMAKE_PREFIX_PATH="/home/runner/work/qtk/Qt/6.5.0/gcc_64/" cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/6.5.0/gcc_64/
- os: macos-latest - os: macos-latest
cmake: -DCMAKE_PREFIX_PATH="/home/runner/work/qtk/Qt/6.5.0/gcc_64/" -DASSIMP_NEW_INTERFACE=ON cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/6.5.0/gcc_64/ -DASSIMP_NEW_INTERFACE=ON
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:

View File

@ -21,7 +21,8 @@ jobs:
- name: Build Qtk - name: Build Qtk
run: | run: |
cmake -B build -DQTK_UPDATE_SUBMODULES=OFF && cmake --build build cmake -B build -DQTK_UPDATE_SUBMODULES=OFF -DQTK_ENABLE_CCACHE=OFF
cmake --build build
- uses: cpp-linter/cpp-linter-action@v2 - uses: cpp-linter/cpp-linter-action@v2
id: linter id: linter

View File

@ -15,7 +15,7 @@ if (QTK_INSTALL_GUI OR QTK_INSTALL_PLUGINS)
# Install custom Qtk plugins for Qt Designer. # Install custom Qtk plugins for Qt Designer.
if(QTK_INSTALL_PLUGINS) if(QTK_INSTALL_PLUGINS)
install( install(
TARGETS qtk_library qtk_plugin_library TARGETS qtk_library qtk_plugin_library qtk_collection
COMPONENT qtk_collection COMPONENT qtk_collection
LIBRARY DESTINATION "${QTK_PLUGIN_LIBRARY_DIR}" LIBRARY DESTINATION "${QTK_PLUGIN_LIBRARY_DIR}"
ARCHIVE DESTINATION "${QTK_PLUGIN_LIBRARY_DIR}" ARCHIVE DESTINATION "${QTK_PLUGIN_LIBRARY_DIR}"