Skip to content

Commit 8d2c7ef

Browse files
committed
added c++ and python tests into single report in old code base
1 parent 6ed57eb commit 8d2c7ef

File tree

1 file changed

+13
-60
lines changed

1 file changed

+13
-60
lines changed

.github/workflows/ci.yml

Lines changed: 13 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)