@@ -43,26 +43,29 @@ jobs:
43
43
run : |
44
44
CXXFLAGS=--coverage CFLAGS=--coverage python scripts/build/install.py
45
45
# coverage tests
46
- - name : Run tests
46
+ - name : Run python tests
47
47
run : |
48
- python -m pytest --doctest-modules --cov=./ --cov-report=xml -s
48
+ python -m pytest --doctest-modules --cov=./ --cov-report=xml:coverage-python.xml -s
49
49
50
- - name : Capture Coverage Data with lcov
50
+ - name : Capture C++ Coverage Data
51
51
run : |
52
- lcov --capture --directory . --output-file coverage.info --no-external
53
-
54
- - name : Generate HTML Coverage Report with genhtml
52
+ lcov --capture --directory . --output-file coverage-cpp.info --no-external
53
+ python -m pip install gcovr
54
+ gcovr -r . --xml-pretty --output coverage-cpp.xml
55
+
56
+ - name : Merge Coverage Reports
55
57
run : |
56
- genhtml coverage.info --output-directory coverage_report
57
-
58
+ python -m pip install coverage-merge
59
+ coverage-merge -o merged-coverage.xml coverage-python.xml coverage-cpp.xml
60
+
58
61
- name : Upload Coverage
59
62
uses : codecov/codecov-action@v3
60
63
with :
61
64
token : ${{ secrets.CODECOV_TOKEN }}
62
65
directory : ./coverage/reports/
63
66
env_vars : OS,PYTHON
64
67
fail_ci_if_error : false
65
- files : ./coverage.xml
68
+ files : ./merged- coverage.xml
66
69
flags : unittests
67
70
name : codecov-umbrella
68
71
path_to_write_report : ./coverage/codecov_report.txt
@@ -199,54 +202,4 @@ jobs:
199
202
200
203
- name : Build Documentation
201
204
run : |
202
- sphinx-build -b html docs/source/ docs/build/html
203
-
204
- test-python-cpp-unified-report :
205
- runs-on : ubuntu-latest
206
- timeout-minutes : 20
207
- steps :
208
- - name : Checkout Repository
209
- uses : actions/checkout@v4
210
-
211
- - name : Set up Python
212
- uses : actions/setup-python@v5
213
- with :
214
- python-version : " 3.11"
215
-
216
- - name : Install Python Dependencies
217
- run : |
218
- python -m pip install --upgrade pip
219
- python -m pip install pytest pytest-cov coverage
220
-
221
- - name : Run Python Tests
222
- run : |
223
- pytest pydatastructs/utils/tests/ --cov=src --cov-report xml:coverage-python.xml --cov-report html:coverage-html
224
-
225
- - name : Install C++ Dependencies
226
- run : |
227
- sudo apt-get update
228
- sudo apt-get install -y g++ gcov lcov
229
-
230
- - name : Compile and Run C++ Tests
231
- run : |
232
- g++ -o tests/test_cpp tests/test.cpp
233
- ./tests/test_cpp
234
- lcov --capture --directory . --output-file coverage-cpp.info
235
-
236
- - name : Convert C++ Coverage to XML
237
- run : |
238
- python -m pip install gcovr
239
- gcovr -r . --xml-pretty --output coverage-cpp.xml
240
-
241
- - name : Combine Coverage Reports
242
- run : |
243
- coverage combine coverage-python.xml coverage-cpp.xml -o unified-reports/combined-coverage.xml
244
-
245
- - name : Generate HTML Report
246
- run : |
247
- coverage html -i --data unified-reports/combined-coverage.xml --directory unified-reports/html
248
-
249
- - name : Upload Combined Coverage to Codecov
250
- run : bash <(curl -s https://codecov.io/bash) -f unified-reports/combined-coverage.xml
251
- env :
252
- CODECOV_TOKEN : ${{ secrets.CODECOV_TOKEN }}
205
+ sphinx-build -b html docs/source/ docs/build/html
0 commit comments