Add gitea CI. #15
|
@ -0,0 +1,331 @@
|
||||||
|
name: All Builds
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
env:
|
||||||
|
QT_VERSION: 6.6.0
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
Qtk:
|
||||||
|
env:
|
||||||
|
CONFIG: -DQTK_SUBMODULES=ON -DQTK_DEBUG=OFF -DQTK_CCACHE=OFF -DQTK_GUI=ON -DQTK_PLUGINS=OFF -DQTK_EXAMPLE=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/$QT_VERSION/gcc_64/ $CONFIG
|
||||||
|
flags: -j $(nproc)
|
||||||
|
- os: windows-latest
|
||||||
|
cmake: -DCMAKE_PREFIX_PATH=D:/a/qtk/qtk/Qt/$QT_VERSION/mingw81_64/ $CONFIG
|
||||||
|
flags: ''
|
||||||
|
- os: macos-latest
|
||||||
|
cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/$QT_VERSION/gcc_64/ $CONFIG
|
||||||
|
flags: -j $(nproc)
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Install Debian packaging dependencies
|
||||||
|
if: matrix.os == 'ubuntu-latest'
|
||||||
|
run: |
|
||||||
|
apt update -y
|
||||||
|
apt install libxcb-cursor0 python3 -y
|
||||||
|
|
||||||
|
- name: Install Qt
|
||||||
|
uses: jurplel/install-qt-action@v2
|
||||||
|
with:
|
||||||
|
version: ${{ env.QT_VERSION }}
|
||||||
|
|
||||||
|
# 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 Application
|
||||||
|
shell: bash
|
||||||
|
run: cmake -B build/ ${{ matrix.cmake }}
|
||||||
|
|
||||||
|
- name: Build Qtk Application
|
||||||
|
shell: bash
|
||||||
|
run: cmake --build build/ --config Release --target qtk_gui ${{ matrix.flags }}
|
||||||
|
|
||||||
|
- name: Build Qtk Example
|
||||||
|
if: matrix.os != 'windows-latest'
|
||||||
|
shell: bash
|
||||||
|
run: cmake --build build/ --config Release --target qtk_example ${{ matrix.flags }}
|
||||||
|
|
||||||
|
# Packaging
|
||||||
|
|
||||||
|
- name: Install Qtk Application
|
||||||
|
shell: bash
|
||||||
|
run: cmake --install build/ --config Release --component qtk_gui
|
||||||
|
|
||||||
|
- name: Package Qtk Application
|
||||||
|
shell: bash
|
||||||
|
run: cmake --build build/ --target package --config Release
|
||||||
|
|
||||||
|
- name: Package Qtk (DEB)
|
||||||
|
if: matrix.os == 'ubuntu-latest'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
cd build
|
||||||
|
cpack -C Release -G DEB
|
||||||
|
|
||||||
|
- name: Upload package artifacts (DEB)
|
||||||
|
if: matrix.os == 'ubuntu-latest'
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: qtk-gui-${{ matrix.os }}
|
||||||
|
path: |
|
||||||
|
build/packages/*.deb
|
||||||
|
|
||||||
|
- name: Package Qtk (WIN)
|
||||||
|
if: matrix.os == 'windows-latest'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
cd build
|
||||||
|
cpack -C Release -G NSIS
|
||||||
|
|
||||||
|
- name: Upload package artifacts (WIN)
|
||||||
|
if: matrix.os == 'windows-latest'
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: qtk-gui-${{ matrix.os }}
|
||||||
|
path: |
|
||||||
|
build/packages/*.exe
|
||||||
|
|
||||||
|
- name: Package Qtk (OSX)
|
||||||
|
if: matrix.os == 'macos-latest'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
cd build
|
||||||
|
cpack -C Release -G TGZ
|
||||||
|
|
||||||
|
- name: Upload package artifacts (OSX)
|
||||||
|
if: matrix.os == 'macos-latest'
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: qtk-gui-${{ matrix.os }}
|
||||||
|
path: |
|
||||||
|
build/packages/*.tar.gz
|
||||||
|
|
||||||
|
- name: Upload Qtk install directory
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: qtk-gui-${{ matrix.os }}-install
|
||||||
|
path: install/*
|
||||||
|
|
||||||
|
# TODO: Enable after trimming resources.
|
||||||
|
# - name: Package Qtk Application Sources
|
||||||
|
# if: matrix.os != 'macos-latest'
|
||||||
|
# shell: bash
|
||||||
|
# run: |
|
||||||
|
# cmake --build build/ --target package_source
|
||||||
|
#
|
||||||
|
# - name: Upload package artifacts
|
||||||
|
# uses: actions/upload-artifact@v3
|
||||||
|
# with:
|
||||||
|
# name: qtk-${{ matrix.os }}-packages
|
||||||
|
# path: |
|
||||||
|
# build/packages/*
|
||||||
|
# !build/packages/_CPack_Packages/*
|
||||||
|
|
||||||
|
Qtk-Library:
|
||||||
|
env:
|
||||||
|
CONFIG: -DQTK_SUBMODULES=ON -DQTK_DEBUG=OFF -DQTK_CCACHE=OFF -DQTK_GUI=OFF -DQTK_PLUGINS=OFF -DQTK_EXAMPLE=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/$QT_VERSION/gcc_64/ $CONFIG
|
||||||
|
flags: -j $(nproc)
|
||||||
|
- os: windows-latest
|
||||||
|
cmake: -DCMAKE_PREFIX_PATH=D:/a/qtk/qtk/Qt/$QT_VERSION/mingw81_64/ $CONFIG
|
||||||
|
flags: ''
|
||||||
|
- os: macos-latest
|
||||||
|
cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/$QT_VERSION/gcc_64/ $CONFIG
|
||||||
|
flags: -j $(nproc)
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Install Qt
|
||||||
|
uses: jurplel/install-qt-action@v2
|
||||||
|
with:
|
||||||
|
version: ${{ env.QT_VERSION }}
|
||||||
|
|
||||||
|
# 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
|
||||||
|
shell: bash
|
||||||
|
run: cmake -B build/ ${{ matrix.cmake }}
|
||||||
|
|
||||||
|
- name: Build Qtk Library
|
||||||
|
shell: bash
|
||||||
|
run: cmake --build build/ --config Release --target qtk_library -- ${{ matrix.flags }}
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
- name: Package Qtk Library (DEB)
|
||||||
|
if: matrix.os == 'ubuntu-latest'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
cd build
|
||||||
|
cpack -C Release -G DEB
|
||||||
|
|
||||||
|
- name: Upload package artifacts (DEB)
|
||||||
|
if: matrix.os == 'ubuntu-latest'
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: libqtk-${{ matrix.os }}
|
||||||
|
path: |
|
||||||
|
build/packages/*.deb
|
||||||
|
|
||||||
|
- name: Package Qtk Library (WIN)
|
||||||
|
if: matrix.os == 'windows-latest'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
cd build
|
||||||
|
cpack -C Release -G NSIS
|
||||||
|
|
||||||
|
- name: Upload package artifacts (WIN)
|
||||||
|
if: matrix.os == 'windows-latest'
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: qtk-${{ matrix.os }}
|
||||||
|
path: |
|
||||||
|
build/packages/*.exe
|
||||||
|
|
||||||
|
- name: Package Qtk Library (OSX)
|
||||||
|
if: matrix.os == 'macos-latest'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
cd build
|
||||||
|
cpack -C Release -G TGZ
|
||||||
|
|
||||||
|
- name: Upload package artifacts (OSX)
|
||||||
|
if: matrix.os == 'macos-latest'
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: qtk-${{ matrix.os }}
|
||||||
|
path: |
|
||||||
|
build/packages/*.tar.gz
|
||||||
|
|
||||||
|
- name: Upload libqtk install
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
if: always()
|
||||||
|
with:
|
||||||
|
name: libqtk-${{ matrix.os }}-install
|
||||||
|
path: install/*
|
||||||
|
|
||||||
|
Qtk-Plugins:
|
||||||
|
env:
|
||||||
|
CONFIG: -DQTK_SUBMODULES=ON -DQTK_DEBUG=OFF -DQTK_CCACHE=OFF -DQTK_GUI=OFF -DQTK_PLUGINS=ON -DQTK_EXAMPLE=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/$QT_VERSION/gcc_64/ $CONFIG
|
||||||
|
flags: -j $(nproc)
|
||||||
|
- os: windows-latest
|
||||||
|
cmake: -DCMAKE_PREFIX_PATH=D:/a/qtk/qtk/Qt/$QT_VERSION/mingw81_64/ $CONFIG
|
||||||
|
flags: ''
|
||||||
|
- os: macos-latest
|
||||||
|
cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/$QT_VERSION/gcc_64/ $CONFIG
|
||||||
|
flags: -j $(nproc)
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Install Qt
|
||||||
|
uses: jurplel/install-qt-action@v2
|
||||||
|
with:
|
||||||
|
version: ${{ env.QT_VERSION }}
|
||||||
|
|
||||||
|
- 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
|
||||||
|
shell: bash
|
||||||
|
run: cmake -B build/ ${{ matrix.cmake }}
|
||||||
|
|
||||||
|
- name: Build Qtk Plugins
|
||||||
|
shell: bash
|
||||||
|
run: cmake --build build/ --config Release --target qtk_plugins -- ${{ matrix.flags }}
|
||||||
|
|
||||||
|
# Packaging
|
||||||
|
|
||||||
|
- name: Install Qtk Plugins
|
||||||
|
shell: bash
|
||||||
|
run: cmake --install build/ --config Release --component qtk_plugins
|
||||||
|
|
||||||
|
Qtk-Assimp-Targets:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-latest, macos-latest]
|
||||||
|
include:
|
||||||
|
- os: ubuntu-latest
|
||||||
|
cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/$QT_VERSION/gcc_64/
|
||||||
|
- os: macos-latest
|
||||||
|
cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/$QT_VERSION/gcc_64/
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Install Qt
|
||||||
|
uses: jurplel/install-qt-action@v2
|
||||||
|
with:
|
||||||
|
version: ${{ env.QT_VERSION }}
|
||||||
|
|
||||||
|
- 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: |
|
||||||
|
apt install libassimp-dev
|
||||||
|
|
||||||
|
- name: Configure Qtk
|
||||||
|
shell: bash
|
||||||
|
run: cmake -B build/ ${{ matrix.cmake }} -DQTK_CCACHE=OFF -DQTK_ASSIMP_NEW_INTERFACE=ON
|
||||||
|
|
||||||
|
- name: Build Qtk
|
||||||
|
shell: bash
|
||||||
|
run: cmake --build build/ --config Release
|
|
@ -0,0 +1,76 @@
|
||||||
|
name: Linting
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
Tidy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Install Assimp Ubuntu
|
||||||
|
run: |
|
||||||
|
python3 --version
|
||||||
|
|
||||||
|
- name: Install Assimp Ubuntu
|
||||||
|
run: |
|
||||||
|
apt update -y
|
||||||
|
apt install libassimp-dev -y
|
||||||
|
|
||||||
|
- name: Install Qt
|
||||||
|
uses: jurplel/install-qt-action@v3
|
||||||
|
with:
|
||||||
|
version: '6.5.0'
|
||||||
|
|
||||||
|
- 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)
|
||||||
|
|
||||||
|
- uses: cpp-linter/cpp-linter-action@v2
|
||||||
|
id: linter
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
# Use clang-tools 14
|
||||||
|
version: '14'
|
||||||
|
# Don't use clang-format with this action
|
||||||
|
# + Set to `file` to use .clang-format (Qtk formats with clang 15)
|
||||||
|
style: ''
|
||||||
|
# Use .clang-tidy file
|
||||||
|
tidy-checks: ''
|
||||||
|
# Check the entire repo for source files to tidy
|
||||||
|
files-changed-only: false
|
||||||
|
# Ignore qtk build and external assimp directories
|
||||||
|
ignore: '.github|build|extern/assimp/assimp'
|
||||||
|
# Point to compile_commands.json produced by build
|
||||||
|
database: 'build'
|
||||||
|
# Use thread comments as feedback
|
||||||
|
thread-comments: true
|
||||||
|
# Show file annotations on GH
|
||||||
|
file-annotations: true
|
||||||
|
|
||||||
|
- name: Fail CI if checks don't pass
|
||||||
|
if: steps.linter.outputs.checks-failed != 0
|
||||||
|
run: exit 1
|
||||||
|
|
||||||
|
Format:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
path:
|
||||||
|
- 'src'
|
||||||
|
- 'app'
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup docker
|
||||||
|
uses: crazy-max/ghaction-setup-docker@v3
|
||||||
|
|
||||||
|
- name: clang-format Check
|
||||||
|
uses: jidicula/clang-format-action@v4.9.0
|
||||||
|
with:
|
||||||
|
clang-format-version: '15'
|
||||||
|
check-path: ${{ matrix.path }}
|
Loading…
Reference in New Issue