Skip to content

Commit 2800e56

Browse files
committed
merge coverage reports.
1 parent 34457f1 commit 2800e56

File tree

1 file changed

+24
-8
lines changed

1 file changed

+24
-8
lines changed

.github/workflows/ci.yml

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,6 @@ jobs:
261261
name: coverage-sqlsrv-${{ matrix.laravel }}-${{ matrix.php }}
262262
path: coverage/clover.xml
263263

264-
265264
merge-coverage:
266265
name: Merge Coverage
267266
runs-on: ubuntu-latest
@@ -275,17 +274,34 @@ jobs:
275274
with:
276275
path: all-coverage
277276

278-
- name: Install Clover Merge Tool
279-
run: |
280-
composer global require edinm/clover-merge
281-
282-
- name: Merge coverage files
277+
- name: Merge coverage reports using Python
283278
run: |
284279
mkdir -p coverage
285-
~/.composer/vendor/bin/clover-merge all-coverage coverage/clover.xml
280+
echo '
281+
import os
282+
import xml.etree.ElementTree as ET
283+
284+
merged = None
285+
286+
for root, dirs, files in os.walk("all-coverage"):
287+
for file in files:
288+
if not file.endswith(".xml"):
289+
continue
290+
path = os.path.join(root, file)
291+
tree = ET.parse(path)
292+
root_elem = tree.getroot()
293+
if merged is None:
294+
merged = root_elem
295+
else:
296+
for pkg in root_elem.findall("packages/package"):
297+
merged.find("packages").append(pkg)
298+
299+
ET.ElementTree(merged).write("coverage/clover.xml", encoding="utf-8", xml_declaration=True)
300+
' > merge.py
301+
python3 merge.py
286302
287303
- name: Upload merged coverage to Qlty
288304
uses: qltysh/qlty-action/coverage@v1
289305
with:
290306
token: ${{ secrets.QLTY_COVERAGE_TOKEN }}
291-
files: coverage/clover.xml
307+
files: coverage/clover.xml

0 commit comments

Comments
 (0)