Refactor the exceptions so that message, source location, and stacktr… #75
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Automated CI | |
on: | |
push: | |
branches: [ "develop", "main", "feature/**", "bug/**" ] | |
pull_request: | |
branches: [ "develop", "main" ] | |
jobs: | |
Build: | |
name: Building ${{ matrix.cmake_preset }} (${{ matrix.os }} With ${{ matrix.compiler }}) | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-22.04, windows-2022] | |
include: | |
- os: ubuntu-22.04 | |
cmake_preset: ci-ninja-gcc-linux-x86_64-release | |
compiler: gcc-13 | |
- os: windows-2022 | |
cmake_preset: ci-ninja-msvc-windows-x64-release | |
compiler: msvc | |
outputs: | |
cmake_preset: ${{ matrix.cmake_preset }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: 'true' | |
- uses: aminya/setup-cpp@v1 | |
with: | |
compiler: ${{ matrix.compiler }} | |
vcvarsall: ${{ contains(matrix.os, 'windows') }} | |
cmake: true | |
ninja: true | |
- uses: lukka/run-vcpkg@v11 | |
with: | |
vcpkgDirectory: '${{github.workspace}}/deps/vcpkg' | |
- uses: lukka/run-cmake@v10 | |
with: | |
configurePreset: '${{ matrix.cmake_preset }}' | |
buildPreset: '${{ matrix.cmake_preset }}' | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: build-artifacts-${{ matrix.cmake_preset }} | |
path: | | |
${{github.workspace}}/build/${{ matrix.cmake_preset }}/ | |
!${{github.workspace}}/build/${{ matrix.cmake_preset }}/**/*.ilk | |
!${{github.workspace}}/build/${{ matrix.cmake_preset }}/**/*.lib | |
!${{github.workspace}}/build/${{ matrix.cmake_preset }}/**/*.pdb | |
!${{github.workspace}}/build/${{ matrix.cmake_preset }}/**/*.a | |
# !${{github.workspace}}/build/${{ matrix.cmake_preset }}/CMakeFiles/ <-- Needed to ensure pack commands work... | |
!${{github.workspace}}/build/${{ matrix.cmake_preset }}/deps/ | |
!${{github.workspace}}/build/${{ matrix.cmake_preset }}/vcpkg_installed/ | |
Test: | |
name: Running Unit Tests On ${{ matrix.os }} | |
needs: [Build] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-22.04, windows-2022] | |
include: | |
- os: ubuntu-22.04 | |
cmake_preset: ci-ninja-gcc-linux-x86_64-release | |
- os: windows-2022 | |
cmake_preset: ci-ninja-msvc-windows-x64-release | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: 'true' | |
- uses: aminya/setup-cpp@v1 | |
with: | |
cmake: true | |
ninja: true | |
- uses: actions/download-artifact@v3 | |
with: | |
name: build-artifacts-${{ matrix.cmake_preset }} | |
path: ${{github.workspace}}/build/${{ matrix.cmake_preset }} | |
- run: | | |
if [ "$RUNNER_OS" == "Linux" ]; then | |
chmod +x ${{github.workspace}}/build/${{ matrix.cmake_preset }}/test/testaqualink-automate | |
chmod +x ${{github.workspace}}/build/${{ matrix.cmake_preset }}/test/perfaqualink-automate | |
fi | |
shell: bash | |
- uses: lukka/run-cmake@v10 | |
with: | |
testPreset: '${{ matrix.cmake_preset }}' | |
Package: | |
name: Packaging Build for ${{ matrix.os }} | |
needs: [Test] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-22.04, windows-2022] | |
include: | |
- os: ubuntu-22.04 | |
cmake_preset: ci-ninja-gcc-linux-x86_64-release | |
- os: windows-2022 | |
cmake_preset: ci-ninja-msvc-windows-x64-release | |
steps: | |
- uses: actions/download-artifact@v3 | |
with: | |
name: build-artifacts-${{ matrix.cmake_preset }} | |
path: ${{github.workspace}}/build/${{ matrix.cmake_preset }} | |
- working-directory: ${{github.workspace}}/build | |
run: | | |
cmake --build ${{github.workspace}}/build/${{ matrix.cmake_preset }} --target pack-aqualink-automate | |
- name: Upload Binary Packages | |
uses: actions/upload-artifact@v3 | |
with: | |
name: package-artifacts-${{ matrix.cmake_preset }} | |
path: | | |
${{github.workspace}}/packages/*.deb | |
${{github.workspace}}/packages/*.rpm | |
${{github.workspace}}/packages/*.tgz | |
${{github.workspace}}/packages/*.zip | |
retention-days: 1 | |
Release: | |
name: Release | |
if: startsWith(github.ref, 'refs/tags/') | |
needs: [Build, Test, Package] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-22.04, windows-2022] | |
include: | |
- os: ubuntu-22.04 | |
cmake_preset: ci-ninja-gcc-linux-x86_64-release | |
- os: windows-2022 | |
cmake_preset: ci-ninja-msvc-windows-x64-release | |
steps: | |
- name: Download Binary Packages | |
uses: actions/download-artifact@v3 | |
with: | |
name: package-artifacts-${{ matrix.cmake_preset }} | |
path: ${{github.workspace}}/packages |