Skip to content

Commit d52c5f5

Browse files
committed
Add codecov step
1 parent 6415219 commit d52c5f5

File tree

1 file changed

+47
-13
lines changed

1 file changed

+47
-13
lines changed

.github/workflows/ci.yml

Lines changed: 47 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,39 +19,73 @@ jobs:
1919
build:
2020
runs-on: ${{ matrix.os }}
2121
strategy:
22+
fail-fast: false
2223
matrix:
2324
os: [ubuntu-22.04, ubuntu-24.04, macos-latest]
2425
compiler: [gcc, clang]
26+
generator: [Ninja, Unix Makefiles]
27+
cmake_version: [default]
2528
exclude:
2629
- os: macos-latest
2730
compiler: gcc
28-
31+
include:
32+
- os: ubuntu-24.04
33+
cmake_version: 3.28.3
34+
generator: Unix Makefiles
35+
compiler: gcc
36+
- os: ubuntu-24.04
37+
cmake_version: 3.28.3
38+
generator: Ninja
39+
compiler: gcc
40+
# - os: ubuntu-24.04
41+
# cmake_version: 3.29.2
42+
2943
steps:
3044
- name: Checkout code
3145
uses: actions/checkout@v4
3246

33-
- name: Install CMake, lcov, gfortran on Linux
47+
- name: Install lcov, compilers on Linux
3448
if: runner.os == 'Linux'
3549
run: |
3650
sudo apt-get update
37-
sudo apt-get install -y cmake lcov gfortran
51+
sudo apt-get install -y lcov gfortran ${{ matrix.compiler }}
52+
53+
- name: Install default CMake
54+
if: runner.os == 'Linux' && matrix.cmake_version == 'default'
55+
run: |
56+
sudo apt-get update
57+
sudo apt-get install -y cmake
58+
59+
- name: Install specific CMake version
60+
if: runner.os == 'Linux' && matrix.cmake_version != 'default'
61+
run: |
62+
sudo apt-get update
63+
sudo apt-get install -y wget
64+
wget https://github.com/Kitware/CMake/releases/download/v${{ matrix.cmake_version }}/cmake-${{ matrix.cmake_version }}-linux-x86_64.tar.gz
65+
tar -xzf cmake-${{ matrix.cmake_version }}-linux-x86_64.tar.gz
66+
sudo cp -r cmake-${{ matrix.cmake_version }}-linux-x86_64/* /usr/local/
3867
3968
- name: Install CMake, lcov on macOS
4069
if: runner.os == 'macOS'
4170
run: |
4271
brew update
4372
brew install cmake lcov
4473
74+
- name: Print CMake version
75+
run: cmake --version
76+
4577
- name: Configure and build
4678
run: |
47-
mkdir build && cd build
48-
cmake .. -DENABLE_COVERAGE=On
49-
make
50-
make gcov lcov test
51-
52-
- name: lcov report
53-
uses: actions/upload-artifact@v4
54-
with:
55-
name: code-coverage-report
56-
path: ./build/lcov
79+
mkdir build
80+
cmake -S . -B build -DCMAKE_C_COMPILER="${{ matrix.compiler }}" -G "${{ matrix.generator }}" -DENABLE_COVERAGE=On
81+
cmake --build build
82+
cmake --build build --target test
83+
cmake --build build --target gcov
84+
cmake --build build --target lcov
5785
86+
# - name: Codecov upload
87+
# uses: codecov/codecov-action@v5
88+
# with:
89+
# name: codecov-coverage
90+
# token: ${{ secrets.CODECOV_TOKEN }}
91+
# fail_ci_if_error: true

0 commit comments

Comments
 (0)