@@ -43,26 +43,29 @@ jobs:
4343 run : |
4444 CXXFLAGS=--coverage CFLAGS=--coverage python scripts/build/install.py
4545# coverage tests
46- - name : Run tests
46+ - name : Run python tests
4747 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
4949
50- - name : Capture Coverage Data with lcov
50+ - name : Capture C++ Coverage Data
5151 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
5557 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+
5861 - name : Upload Coverage
5962 uses : codecov/codecov-action@v3
6063 with :
6164 token : ${{ secrets.CODECOV_TOKEN }}
6265 directory : ./coverage/reports/
6366 env_vars : OS,PYTHON
6467 fail_ci_if_error : false
65- files : ./coverage.xml
68+ files : ./merged- coverage.xml
6669 flags : unittests
6770 name : codecov-umbrella
6871 path_to_write_report : ./coverage/codecov_report.txt
@@ -199,54 +202,4 @@ jobs:
199202
200203 - name : Build Documentation
201204 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