Skip to content

Commit cd73d14

Browse files
committed
Add codecov step
1 parent 6415219 commit cd73d14

File tree

1 file changed

+61
-15
lines changed

1 file changed

+61
-15
lines changed

.github/workflows/ci.yml

Lines changed: 61 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,39 +19,85 @@ jobs:
1919
build:
2020
runs-on: ${{ matrix.os }}
2121
strategy:
22+
fail-fast: false
2223
matrix:
23-
os: [ubuntu-22.04, ubuntu-24.04, macos-latest]
24+
os: [ubuntu-24.04]
2425
compiler: [gcc, clang]
25-
exclude:
26-
- os: macos-latest
26+
generator: [Ninja, Unix Makefiles]
27+
cmake_version: [4.0.1, 3.31.7, 3.28.6, 3.26.6, 3.21.7, 3.20.6, 3.16.9, 3.12.4, 3.10.3]
28+
# Additionally test Ubuntu and macOS with default packages
29+
include:
30+
- os: ubuntu-22.04
31+
cmake_version: default
32+
generator: Unix Makefiles
33+
compiler: gcc
34+
- os: ubuntu-22.04
35+
cmake_version: default
36+
generator: Unix Makefiles
37+
compiler: clang
38+
- os: ubuntu-22.04
39+
cmake_version: default
40+
generator: Ninja
2741
compiler: gcc
28-
42+
- os: ubuntu-22.04
43+
cmake_version: default
44+
generator: Ninja
45+
compiler: clang
46+
- os: macos-latest
47+
compiler: clang
48+
cmake_version: default
49+
generator: Unix Makefiles
50+
- os: macos-latest
51+
compiler: clang
52+
cmake_version: default
53+
generator: Ninja
54+
2955
steps:
3056
- name: Checkout code
3157
uses: actions/checkout@v4
3258

33-
- name: Install CMake, lcov, gfortran on Linux
59+
- name: Install lcov, compilers on Linux
3460
if: runner.os == 'Linux'
3561
run: |
3662
sudo apt-get update
37-
sudo apt-get install -y cmake lcov gfortran
63+
sudo apt-get install -y lcov gfortran ${{ matrix.compiler }}
64+
65+
- name: Install default CMake
66+
if: runner.os == 'Linux' && matrix.cmake_version == 'default'
67+
run: |
68+
sudo apt-get update
69+
sudo apt-get install -y cmake
70+
71+
- name: Install specific CMake version
72+
if: runner.os == 'Linux' && matrix.cmake_version != 'default'
73+
run: |
74+
sudo apt-get update
75+
sudo apt-get install -y wget
76+
wget https://github.com/Kitware/CMake/releases/download/v${{ matrix.cmake_version }}/cmake-${{ matrix.cmake_version }}-linux-x86_64.tar.gz
77+
tar -xzf cmake-${{ matrix.cmake_version }}-linux-x86_64.tar.gz --strip-components=1 -C cmake
78+
sudo cp -r cmake/* /usr/local/
3879
3980
- name: Install CMake, lcov on macOS
4081
if: runner.os == 'macOS'
4182
run: |
4283
brew update
4384
brew install cmake lcov
4485
86+
- name: Print CMake version
87+
run: cmake --version
88+
4589
- name: Configure and build
4690
run: |
4791
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
92+
cmake .. -DCMAKE_C_COMPILER="${{ matrix.compiler }}" -G "${{ matrix.generator }}" -DENABLE_COVERAGE=On
93+
cmake --build .
94+
cmake --build . --target test
95+
cmake --build . --target gcov
96+
cmake --build . --target lcov
5797
98+
# - name: Codecov upload
99+
# uses: codecov/codecov-action@v5
100+
# with:
101+
# name: codecov-coverage
102+
# token: ${{ secrets.CODECOV_TOKEN }}
103+
# fail_ci_if_error: true

0 commit comments

Comments
 (0)