qtk/.github/workflows/all-builds.yml

296 lines
8.8 KiB
YAML
Raw Normal View History

2022-11-24 22:26:53 +00:00
name: All Builds
on:
push:
pull_request:
workflow_dispatch:
jobs:
Build-Qtk:
2023-01-29 23:26:36 +00:00
env:
2023-03-11 18:24:51 +00:00
CONFIG: -DQTK_UPDATE_SUBMODULES=ON -DQTK_DEBUG=OFF -DQTK_ENABLE_CCACHE=OFF -DQTK_BUILD_GUI=ON -DQTK_INSTALL_LIBRARY=ON -DQTK_INSTALL_PLUGINS=OFF
strategy:
fail-fast: false
matrix:
2022-08-06 19:18:55 +00:00
os: [ubuntu-latest, windows-latest, macos-latest]
include:
- os: ubuntu-latest
2023-01-29 23:26:36 +00:00
cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/6.5.0/gcc_64/ $CONFIG
2022-08-06 19:18:55 +00:00
- os: windows-latest
2023-01-29 23:26:36 +00:00
cmake: -DCMAKE_PREFIX_PATH=D:/a/qtk/qtk/Qt/6.5.0/mingw81_64/ $CONFIG
- os: macos-latest
2023-01-29 23:26:36 +00:00
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'
2023-01-29 23:26:36 +00:00
# Windows
- name: Chocolatey Action
if: matrix.os == 'windows-latest'
uses: crazy-max/ghaction-chocolatey@v2
with:
2023-01-15 22:50:50 +00:00
args: install pkgconfiglite --checksum e87b5ea3c9142256af60f2d5b917aa63b571e6a0 --checksum-type sha1
2023-01-29 23:26:36 +00:00
- name: Configure Qtk Application (Windows)
if: matrix.os == 'windows-latest'
shell: bash
run: cmake -B build/ ${{ matrix.cmake }}
- name: Build Qtk Application (Windows)
2023-01-21 13:01:13 +00:00
if: matrix.os == 'windows-latest'
shell: bash
2023-01-29 23:26:36 +00:00
run: cmake --build build/ --config Release
2023-01-21 13:01:13 +00:00
2023-01-29 23:26:36 +00:00
# OSX / Linux
- name: Configure Qtk Application (OSX / Linux)
2023-01-21 13:01:13 +00:00
if: matrix.os != 'windows-latest'
shell: bash
2023-01-29 23:26:36 +00:00
run: cmake -B build/ ${{ matrix.cmake }}
2023-01-29 23:26:36 +00:00
- name: Build Qtk Application (OSX / Linux)
if: matrix.os != 'windows-latest'
shell: bash
2023-03-11 16:30:17 +00:00
run: cmake --build build/ --config Release --target qtk_app -- -j $(nproc)
2023-01-15 22:50:50 +00:00
2023-01-29 23:26:36 +00:00
# Packaging
2023-01-29 23:26:36 +00:00
- name: Install Qtk Application
2023-01-21 13:01:13 +00:00
shell: bash
2023-03-11 16:30:17 +00:00
run: cmake --install build/ --config Release --prefix=$(pwd)/install --component qtk_app
2023-01-21 13:01:13 +00:00
2023-01-29 23:26:36 +00:00
- name: Package Qtk Application
shell: bash
2023-01-29 23:26:36 +00:00
run: cmake --build build/ --target package --config Release
2023-03-11 23:44:04 +00:00
- name: Package Qtk Library (DEB)
if: matrix.os == 'ubuntu-latest'
shell: bash
2023-03-11 23:58:02 +00:00
run: |
cd build
cpack -C Release -G DEB
2023-03-11 23:44:04 +00:00
- name: Upload package artifacts (DEB)
if: matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@v3
with:
name: qtk-${{ matrix.os }}-debian
path: |
build/packages/*.deb
2023-03-11 18:24:51 +00:00
- name: Upload Qtk install directory
uses: actions/upload-artifact@v3
with:
name: qtk-${{ matrix.os }}-install
path: install/*
2023-01-15 22:50:50 +00:00
2023-01-29 23:26:36 +00:00
# TODO: Enable after trimming resources.
# - name: Package Qtk Application Sources
2023-01-15 22:50:50 +00:00
# if: matrix.os != 'macos-latest'
# shell: bash
# run: |
# cmake --build build/ --target package_source
2023-03-11 18:24:51 +00:00
#
2023-01-29 23:26:36 +00:00
# - name: Upload package artifacts
# uses: actions/upload-artifact@v3
# with:
2023-03-11 18:24:51 +00:00
# name: qtk-${{ matrix.os }}-packages
2023-01-29 23:26:36 +00:00
# path: |
2023-03-11 18:24:51 +00:00
# build/packages/*
2023-01-29 23:26:36 +00:00
# !build/packages/_CPack_Packages/*
Build-Qtk-Library:
env:
2023-03-11 18:24:51 +00:00
CONFIG: -DQTK_UPDATE_SUBMODULES=ON -DQTK_DEBUG=OFF -DQTK_ENABLE_CCACHE=OFF -DQTK_BUILD_GUI=OFF -DQTK_INSTALL_LIBRARY=ON -DQTK_INSTALL_PLUGINS=OFF
2023-01-29 23:26:36 +00:00
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:
2023-01-29 23:26:36 +00:00
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 --target qtk_library -- -j $(nproc)
# Packaging
- name: Install Qtk Library
shell: bash
run: cmake --install build/ --config Release --prefix=$(pwd)/install --component qtk_library
- name: Package Qtk Library
shell: bash
run: cmake --build build/ --target package --config Release
2023-03-11 23:44:04 +00:00
- name: Package Qtk Library (DEB)
if: matrix.os == 'ubuntu-latest'
shell: bash
2023-03-11 23:58:02 +00:00
run: |
cd build
cpack -C Release -G DEB
2023-03-11 23:44:04 +00:00
- name: Upload package artifacts (DEB)
if: matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@v3
with:
name: libqtk-${{ matrix.os }}-debian
path: |
build/packages/*.deb
2023-03-11 18:24:51 +00:00
- name: Upload libqtk install
uses: actions/upload-artifact@v3
if: always()
with:
name: libqtk-${{ matrix.os }}-install
path: install/*
2023-01-29 23:26:36 +00:00
2023-03-11 18:24:51 +00:00
- name: Upload package artifacts
2023-01-29 23:26:36 +00:00
uses: actions/upload-artifact@v3
2023-03-11 18:24:51 +00:00
if: always()
2023-01-29 23:26:36 +00:00
with:
2023-03-11 18:24:51 +00:00
name: libqtk-packages-${{ matrix.os }}
path: |
2023-03-11 18:24:51 +00:00
build/packages/
2023-03-11 23:44:04 +00:00
!build/packages/*.deb
2023-03-11 18:24:51 +00:00
!build/packages/_CPack_Packages/*
2023-01-29 23:26:36 +00:00
Build-Qtk-Plugins:
env:
2023-03-11 18:24:51 +00:00
CONFIG: -DQTK_UPDATE_SUBMODULES=ON -DQTK_DEBUG=OFF -DQTK_ENABLE_CCACHE=OFF -DQTK_BUILD_GUI=OFF -DQTK_INSTALL_LIBRARY=OFF -DQTK_INSTALL_PLUGINS=ON
2023-01-29 23:26:36 +00:00
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
2023-03-11 17:05:34 +00:00
run: cmake --build build/ --config Release --target qtk_collection
2023-01-29 23:26:36 +00:00
# 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 --target qtk_collection -- -j $(nproc)
# Packaging
- name: Install Qtk Plugins
shell: bash
run: cmake --install build/ --config Release --prefix=$(pwd)/install --component qtk_collection
Build-Qtk-Assimp-Targets:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
include:
- os: ubuntu-latest
2023-01-29 23:26:36 +00:00
cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/6.5.0/gcc_64/
- os: macos-latest
2023-01-29 23:26:36 +00:00
cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/6.5.0/gcc_64/ -DASSIMP_NEW_INTERFACE=ON
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Install Qt
uses: jurplel/install-qt-action@v2
with:
version: '6.5.0'
- name: Install Assimp MacOS
if: matrix.os == 'macos-latest'
shell: bash
run: |
brew install assimp
- name: Install Assimp Ubuntu
if: matrix.os == 'ubuntu-latest'
shell: bash
run: |
sudo apt install libassimp-dev