Skip to content

Commit

Permalink
Vastly simplified github actions routines
Browse files Browse the repository at this point in the history
  • Loading branch information
DavidAce committed May 31, 2023
1 parent 78f07c1 commit a668e21
Show file tree
Hide file tree
Showing 6 changed files with 163 additions and 401 deletions.
90 changes: 28 additions & 62 deletions .github/workflows/macos11.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,90 +9,56 @@ on:

jobs:
ci:
name: ${{ matrix.compiler }}-${{ matrix.linkage }}-${{ matrix.manager }}
name: ${{ matrix.compiler }}-${{ matrix.manager }}
runs-on: macos-11
env:
cache-name: cache-${{ matrix.compiler }}-${{ matrix.linkage }}-${{ matrix.manager }}
cache-name: cache-${{ matrix.compiler }}-${{ matrix.manager }}
strategy:
fail-fast: false # True stops all on first error. Stick to false when debugging
matrix:
include:
- { compiler: cl, linkage: static, manager: conan }
- { compiler: cl, linkage: static, manager: cmake }
- { compiler: cl, linkage: static, manager: fetch }
- { compiler: cl, linkage: static, manager: cpm }
- { compiler: cl, linkage: static, manager: find-or-cmake }
- { compiler: cl, linkage: shared, manager: conan }
- { compiler: cl, linkage: shared, manager: cmake }
- { compiler: cl, linkage: shared, manager: fetch }
- { compiler: cl, linkage: shared, manager: cpm }
- { compiler: cl, linkage: shared, manager: find-or-cmake }
- { compiler: gcc, manager: cmake }
- { compiler: gcc, manager: conan }
- { compiler: gcc, manager: find }
- { compiler: clang, manager: cmake }
- { compiler: clang, manager: conan }
- { compiler: clang, manager: find }

steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v1
- uses: actions/checkout@v3
- uses: lukka/get-cmake@latest
- name: Setup Python
uses: actions/setup-python@v4
if: contains(matrix.manager, 'conan')
with:
python-version: '3.x'

- uses: actions/cache@v2
- name: Setup caches
id: h5pp-cache
uses: actions/cache@v3
with:
path: |
~/cpm-cache
~/.conan/data
# ~/h5pp-install
# build/Debug/h5pp-deps-install
~/.conan2
install/github-actions-${{ matrix.manager }}
key: ${{ runner.os }}-${{ env.cache-name }}

- uses: hendrikmuhs/ccache-action@v1
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ runner.os }}-${{ env.cache-name }}
max-size: 500M
key: ${{ env.cache-name }}
max-size: 1000M

- name: Setup conan
if: matrix.manager == 'conan'
run: |
pip install conan
conan profile detect
- name: Configure
shell: bash
run: |
cmake -E make_directory build/Debug
cd build/Debug
cmake \
-DCMAKE_BUILD_TYPE=Debug \
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.linkage == 'shared' }} \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-DCMAKE_INSTALL_PREFIX:PATH=~/h5pp-install \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DH5PP_ENABLE_EIGEN3:BOOL=ON \
-DH5PP_ENABLE_SPDLOG:BOOL=ON \
-DH5PP_ENABLE_ASAN:BOOL=OFF \
-DH5PP_ENABLE_TESTS:BOOL=ON \
-DH5PP_PACKAGE_MANAGER:STRING=${{ matrix.manager }} \
-DH5PP_BUILD_EXAMPLES:BOOL=ON \
-DCPM_SOURCE_CACHE=~/cpm-cache \
-DCONAN_BUILD=all \
-G "Unix Makefiles" \
--loglevel=DEBUG \
../../
- name: Build
run: |
cd build/Debug
cmake --build . --parallel 2
- name: Install
run: |
cd build/Debug
cmake --build . --target install
- name: Test
run: |
cd build/Debug
ctest -C Debug --output-on-failure -R h5pp
conan profile detect --force
- name: Run CMakePreset
uses: lukka/run-cmake@v10
with:
configurePreset: 'github-actions-${{ matrix.manager }}'
buildPreset: 'github-actions-${{ matrix.manager }}'
testPreset: 'github-actions-${{ matrix.manager }}'


96 changes: 29 additions & 67 deletions .github/workflows/ubuntu18.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,36 +9,26 @@ on:

jobs:
ci:
name: ${{ matrix.compiler }}-${{ matrix.linkage }}-${{ matrix.manager }}
name: ${{ matrix.compiler }}-${{ matrix.manager }}
runs-on: ubuntu-18.04
env:
cache-name: cache-${{ matrix.compiler }}-${{ matrix.linkage }}-${{ matrix.manager }}
cache-name: cache-${{ matrix.compiler }}-${{ matrix.manager }}
strategy:
fail-fast: true # True stops all on first error. Stick to false when debugging
matrix:
include:
- { compiler: gcc, linkage: static, manager: cmake }
- { compiler: gcc, linkage: static, manager: conan }
- { compiler: gcc, linkage: static, manager: fetch }
- { compiler: gcc, linkage: static, manager: find-or-cmake }
- { compiler: gcc, linkage: shared, manager: cmake }
- { compiler: gcc, linkage: shared, manager: conan }
- { compiler: gcc, linkage: shared, manager: fetch }
- { compiler: gcc, linkage: shared, manager: cpm }
- { compiler: gcc, linkage: shared, manager: find-or-cmake }
- { compiler: clang, linkage: static, manager: cmake }
- { compiler: clang, linkage: static, manager: conan }
- { compiler: clang, linkage: static, manager: fetch }
- { compiler: clang, linkage: static, manager: cpm }
- { compiler: clang, linkage: static, manager: find-or-cmake }
- { compiler: clang, linkage: shared, manager: cmake }
- { compiler: clang, linkage: shared, manager: conan }
- { compiler: clang, linkage: shared, manager: fetch }
- { compiler: clang, linkage: shared, manager: cpm }
- { compiler: clang, linkage: shared, manager: find-or-cmake }
- { compiler: gcc, manager: cmake }
- { compiler: gcc, manager: conan }
- { compiler: gcc, manager: find }
- { compiler: clang, manager: cmake }
- { compiler: clang, manager: conan }
- { compiler: clang, manager: find }

steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v1
- uses: actions/checkout@v3
- uses: lukka/get-cmake@latest
- name: Setup Python
uses: actions/setup-python@v4
if: contains(matrix.manager, 'conan')
with:
python-version: '3.x'
Expand All @@ -48,17 +38,21 @@ jobs:
uses: actions/cache@v3
with:
path: |
~/cpm-cache
~/.conan/data
# ~/h5pp-install
# build/Debug/h5pp-deps-install
~/.conan2
install/github-actions-${{ matrix.manager }}
key: ${{ runner.os }}-${{ env.cache-name }}

- uses: hendrikmuhs/ccache-action@v1
with:
key: ${{ runner.os }}-${{ env.cache-name }}
max-size: 500M

- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ env.cache-name }}
max-size: 1000M

- name: Setup gcc
if: matrix.compiler == 'gcc'
run: |
Expand All @@ -75,52 +69,20 @@ jobs:
- name: Setup apt packages
if: contains(matrix.manager,'find')
run: sudo apt install libhdf5-dev libspdlog-dev libeigen3-dev -y
run: sudo apt install ninja-build libhdf5-dev libspdlog-dev libeigen3-dev -y

- name: Setup conan
if: matrix.manager == 'conan'
run: |
pip install conan
conan profile detect
conan profile detect --force
- name: Configure
shell: bash
run: |
cmake -E make_directory build/Debug
cd build/Debug
cmake \
-DCMAKE_BUILD_TYPE=Debug \
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.linkage == 'shared' }} \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-DCMAKE_INSTALL_PREFIX:PATH=~/h5pp-install \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DH5PP_ENABLE_EIGEN3:BOOL=ON \
-DH5PP_ENABLE_FMT:BOOL=OFF \
-DH5PP_ENABLE_SPDLOG:BOOL=ON \
-DH5PP_ENABLE_ASAN:BOOL=ON \
-DH5PP_ENABLE_TESTS:BOOL=ON \
-DH5PP_ENABLE_PCH:BOOL=OFF \
-DH5PP_PACKAGE_MANAGER:STRING=${{ matrix.manager }} \
-DH5PP_BUILD_EXAMPLES:BOOL=ON \
-G "Unix Makefiles" \
--loglevel=DEBUG \
../../
- name: Build
run: |
cd build/Debug
cmake --build . --parallel 2
- name: Install
run: |
cd build/Debug
cmake --build . --target install
- name: Test
run: |
cd build/Debug
ctest -C Debug --output-on-failure -R h5pp
- name: Run CMakePreset
uses: lukka/run-cmake@v10
with:
configurePreset: 'github-actions-${{ matrix.manager }}'
buildPreset: 'github-actions-${{ matrix.manager }}'
testPreset: 'github-actions-${{ matrix.manager }}'



109 changes: 26 additions & 83 deletions .github/workflows/ubuntu20.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,38 +9,26 @@ on:

jobs:
ci:
name: ${{ matrix.compiler }}-${{ matrix.linkage }}-${{ matrix.manager }}
name: ${{ matrix.compiler }}-${{ matrix.manager }}
runs-on: ubuntu-20.04
env:
cache-name: cache-${{ matrix.compiler }}-${{ matrix.linkage }}-${{ matrix.manager }}
cache-name: cache-${{ matrix.compiler }}-${{ matrix.manager }}
strategy:
fail-fast: true # True stops all on first error. Stick to false when debugging
matrix:
include:
- { compiler: gcc, linkage: static, manager: cmake }
- { compiler: gcc, linkage: static, manager: conan }
- { compiler: gcc, linkage: static, manager: fetch }
- { compiler: gcc, linkage: static, manager: cpm }
- { compiler: gcc, linkage: static, manager: find }
- { compiler: gcc, linkage: shared, manager: cmake }
- { compiler: gcc, linkage: shared, manager: conan }
- { compiler: gcc, linkage: shared, manager: fetch }
- { compiler: gcc, linkage: shared, manager: cpm }
- { compiler: gcc, linkage: shared, manager: find }
- { compiler: clang, linkage: static, manager: cmake }
- { compiler: clang, linkage: static, manager: conan }
- { compiler: clang, linkage: static, manager: fetch }
- { compiler: clang, linkage: static, manager: cpm }
- { compiler: clang, linkage: static, manager: find }
- { compiler: clang, linkage: shared, manager: cmake }
- { compiler: clang, linkage: shared, manager: conan }
- { compiler: clang, linkage: shared, manager: fetch }
- { compiler: clang, linkage: shared, manager: cpm }
- { compiler: clang, linkage: shared, manager: find }
- { compiler: gcc, manager: cmake }
- { compiler: gcc, manager: conan }
- { compiler: gcc, manager: find }
- { compiler: clang, manager: cmake }
- { compiler: clang, manager: conan }
- { compiler: clang, manager: find }

steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v1
- uses: actions/checkout@v3
- uses: lukka/get-cmake@latest
- name: Setup Python
uses: actions/setup-python@v4
if: contains(matrix.manager, 'conan')
with:
python-version: '3.x'
Expand All @@ -50,16 +38,15 @@ jobs:
uses: actions/cache@v3
with:
path: |
~/cpm-cache
~/.conan/data
# ~/h5pp-install
# build/Debug/h5pp-deps-install
~/.conan2
install/github-actions-${{ matrix.manager }}
key: ${{ runner.os }}-${{ env.cache-name }}

- uses: hendrikmuhs/ccache-action@v1
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ runner.os }}-${{ env.cache-name }}
max-size: 500M
key: ${{ env.cache-name }}
max-size: 1000M

- name: Setup gcc # compilers are already installed on the CI
if: matrix.compiler == 'gcc'
Expand All @@ -77,61 +64,17 @@ jobs:
- name: Setup apt packages
if: contains(matrix.manager,'find')
run: sudo apt install libhdf5-dev libfmt-dev libspdlog-dev libeigen3-dev gcovr -y
run: sudo apt install ninja-build libhdf5-dev libfmt-dev libspdlog-dev libeigen3-dev -y

- name: Setup conan
if: matrix.manager == 'conan'
run: |
pip install conan
conan profile detect
- name: Configure
shell: bash
run: |
cmake -E make_directory build/Debug
cd build/Debug
cmake \
-DCMAKE_BUILD_TYPE=Debug \
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.linkage == 'shared' }} \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-DCMAKE_INSTALL_PREFIX:PATH=~/h5pp-install \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DH5PP_ENABLE_EIGEN3:BOOL=ON \
-DH5PP_ENABLE_SPDLOG:BOOL=ON \
-DH5PP_ENABLE_ASAN:BOOL=ON \
-DH5PP_ENABLE_TESTS:BOOL=ON \
-DH5PP_ENABLE_COVERAGE:BOOL=ON \
-DH5PP_PACKAGE_MANAGER:STRING=${{ matrix.manager }} \
-DH5PP_BUILD_EXAMPLES:BOOL=ON \
-G "Unix Makefiles" \
--loglevel=DEBUG \
../../
- name: Build
run: |
cd build/Debug
cmake --build . --parallel 2
- name: Install
run: |
cd build/Debug
cmake --build . --target install
- name: Test
run: |
cd build/Debug
ctest -C Debug --output-on-failure -R h5pp
- name: Coverage
if: matrix.compiler == 'gcc' && matrix.linkage == 'static' && matrix.manager == 'find'
run: |
# Create lcov report
lcov --capture --directory build/Debug --output-file coverage.info
lcov --remove coverage.info '*/test-*' '/usr/*' '*include/fmt/*' '*include/spdlog/*' '*/Eigen/*' '*/hdf5/*' '*catch.hpp' --output-file coverage.info # filter system-files
lcov --list coverage.info # debug info
# Upload report to CodeCov
bash <(curl -s https://codecov.io/bash) -f coverage.info || echo "Codecov did not collect coverage reports"
conan profile detect --force
- name: Run CMakePreset
uses: lukka/run-cmake@v10
with:
configurePreset: 'github-actions-${{ matrix.manager }}'
buildPreset: 'github-actions-${{ matrix.manager }}'
testPreset: 'github-actions-${{ matrix.manager }}'
Loading

0 comments on commit a668e21

Please sign in to comment.