Skip to content

Refactor the exceptions so that message, source location, and stacktr… #75

Refactor the exceptions so that message, source location, and stacktr…

Refactor the exceptions so that message, source location, and stacktr… #75

Workflow file for this run

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