⬆️🪝 update pre-commit hooks #844
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: CI | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
env: | |
BUILD_TYPE: Release | |
CMAKE_BUILD_PARALLEL_LEVEL: 3 | |
CTEST_PARALLEL_LEVEL: 3 | |
BOOST_VERSION_MAJOR: 1 | |
BOOST_VERSION_MINOR: 76 | |
BOOST_VERSION_PATCH: 0 | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
build-ubuntu: | |
name: Ubuntu (Build, Test, and Coverage) | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Install boost | |
run: sudo apt-get update && sudo apt-get -y install libboost-all-dev | |
- name: Configure CMake | |
run: cmake -S "${{github.workspace}}" -B "${{github.workspace}}/build" -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_SYREC_TESTS=ON -DBINDINGS=ON | |
- name: Build | |
run: cmake --build "${{github.workspace}}/build" --config $BUILD_TYPE | |
- name: Test | |
working-directory: ${{github.workspace}}/build/test | |
run: ctest -C $BUILD_TYPE --output-on-failure | |
- name: Coverage | |
run: | | |
cmake -S "${{github.workspace}}" -B "${{github.workspace}}/buildCov" -DCMAKE_BUILD_TYPE=Debug -DBUILD_SYREC_TESTS=ON -DCOVERAGE=ON -DBINDINGS=ON | |
cmake --build "${{github.workspace}}/buildCov" --config Debug | |
cd buildCov/test | |
ctest -C Debug --output-on-failure | |
- name: Run gcov | |
run: find . -type f -name '*.gcno' -exec gcov -p {} + | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
fail_ci_if_error: true | |
token: ${{ secrets.CODECOV_TOKEN }} | |
build-macos: | |
name: macOS (Build and Test) | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Install boost | |
run: brew install boost | |
- name: Configure CMake | |
run: cmake -S "${{github.workspace}}" -B "${{github.workspace}}/build" -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_SYREC_TESTS=ON -DBINDINGS=ON | |
- name: Build | |
run: cmake --build "${{github.workspace}}/build" --config $BUILD_TYPE | |
- name: Test | |
working-directory: ${{github.workspace}}/build/test | |
run: ctest -C $BUILD_TYPE --output-on-failure | |
build-windows: | |
name: Windows (Build and Test) | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Install boost | |
uses: MarkusJx/[email protected] | |
id: install-boost | |
with: | |
boost_version: ${{ env.BOOST_VERSION_MAJOR }}.${{ env.BOOST_VERSION_MINOR }}.${{ env.BOOST_VERSION_PATCH }} | |
platform_version: 2019 | |
- name: Configure CMake | |
run: cmake -S "${{github.workspace}}" -B "${{github.workspace}}/build" -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_SYREC_TESTS=ON -T "ClangCl" -DBoost_USE_MULTITHREADED=ON -DBoost_USE_STATIC_RUNTIME=OFF | |
env: | |
BOOST_ROOT: ${{ steps.install-boost.outputs.BOOST_ROOT }} | |
- name: Build | |
run: cmake --build "${{github.workspace}}/build" --config $BUILD_TYPE | |
- name: Test | |
working-directory: ${{github.workspace}}/build/test | |
run: cd $BUILD_TYPE && ./syrec_test |