@@ -10,14 +10,22 @@ jobs:
10
10
fail-fast : false
11
11
matrix :
12
12
config :
13
- - name : " Ubuntu latest GCC 9.3"
13
+ - name : " Ubuntu 20.04 GCC 9.3"
14
14
os : ubuntu-20.04
15
15
build_type : Release
16
16
packages : ninja-build
17
17
generator : Ninja
18
18
cc : gcc
19
19
cxx : g++
20
20
21
+ - name : " Ubuntu 20.04 GCC 9.3 coverage"
22
+ os : ubuntu-20.04
23
+ build_type : Debug
24
+ packages : ninja-build lcov
25
+ generator : Ninja
26
+ cc : gcc
27
+ cxx : g++
28
+
21
29
- name : " Ubuntu 18.04 GCC 8.4"
22
30
os : ubuntu-18.04
23
31
build_type : Release
26
34
cc : gcc-8
27
35
cxx : g++-8
28
36
37
+ - name : " Ubuntu 18.04 GCC 7.5"
38
+ os : ubuntu-18.04
39
+ build_type : Release
40
+ packages : ninja-build
41
+ generator : Ninja
42
+ cc : gcc-7
43
+ cxx : g++-7
44
+
29
45
- name : " Windows MSVC 2019"
30
46
os : windows-latest
31
47
build_type : Release
52
68
53
69
- name : Install dependencies on Ubuntu
54
70
if : startsWith(matrix.config.os, 'ubuntu')
71
+ shell : bash
55
72
run : |
56
73
sudo apt install ${{ matrix.config.packages }}
74
+ if [[ "${{ matrix.config.build_type }}" == "Debug" ]]; then
75
+ gem install coveralls-lcov
76
+ fi
57
77
58
78
- name : Install dependencies on windows
59
79
if : startsWith(matrix.config.os, 'windows')
@@ -74,11 +94,24 @@ jobs:
74
94
cmake --version
75
95
mkdir build
76
96
mkdir install
77
- cmake -G "${{ matrix.config.generator }}" -S . -B build -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} -DCMAKE_INSTALL_PREFIX:PATH=install
97
+ if [[ "${{ matrix.config.build_type }}" == "Debug" ]]; then
98
+ cmake -G "${{ matrix.config.generator }}" -S . -B build -DCMAKE_BUILD_TYPE=Debug -DGHC_COVERAGE=ON -DCMAKE_INSTALL_PREFIX:PATH=install
99
+ else
100
+ cmake -G "${{ matrix.config.generator }}" -S . -B build -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} -DCMAKE_INSTALL_PREFIX:PATH=install
101
+ fi
78
102
79
103
- name : Build project
80
104
shell : bash
81
- run : cmake --build build --config ${{ matrix.config.build_type }}
105
+ run : |
106
+ cmake --build build --config ${{ matrix.config.build_type }}
82
107
83
108
- name : Run tests
84
- run : cd build && ctest -C ${{ matrix.config.build_type }}
109
+ run : |
110
+ cd build && ctest -C ${{ matrix.config.build_type }}
111
+
112
+ - name : Collect coverage info
113
+ run : |
114
+ cd build
115
+ lcov --compat-libtool --directory . --capture --output-file coverage_output.info
116
+ lcov --remove coverage_output.info '/usr/*' '*/c++/*' '*.h' '*/catch.hpp' -o coverage.info
117
+ sed -i 's|SF:/.*/filesystem/|SF:../|g' coverage.info
0 commit comments