Update publish-report to simplify inputs, improve Markdown generation, and adjust token usage for Gitea compatibility
Build and Analyse / build-and-analyse (push) Successful in 39s

This commit is contained in:
2026-06-27 17:59:14 +02:00
parent d57da1e60f
commit 053979d4e1
+21 -27
View File
@@ -1,13 +1,9 @@
name: Publish JUnit Report (Short Names) name: Publish JUnit Report (Short Names)
description: Normalize JUnit XML report names and publish a summary-only test report. description: Normalize JUnit XML report names and publish a test report to the repo.
inputs: inputs:
token: token:
description: GitHub token for creating the check run. description: Gitea token with write access to the repository.
required: true required: true
report-name:
description: Name shown for the test report.
required: false
default: Summary of JUnit Tests
runs: runs:
using: composite using: composite
@@ -27,19 +23,20 @@ runs:
- name: Generate Markdown Report - name: Generate Markdown Report
shell: bash shell: bash
run: | run: |
mkdir -p reports
python3 - <<'EOF' python3 - <<'EOF'
import glob, xml.etree.ElementTree as ET import glob, xml.etree.ElementTree as ET
files = glob.glob("junit-short/*.xml") files = glob.glob("junit-short/*.xml")
total_tests = total_failures = total_errors = total_skipped = 0 total_tests = total_failures = total_errors = total_skipped = 0
rows = [] rows = []
for f in sorted(files): for f in sorted(files):
tree = ET.parse(f) tree = ET.parse(f)
r = tree.getroot() r = tree.getroot()
suites = r.findall("testsuite") if r.tag == "testsuites" else [r] suites = r.findall("testsuite") if r.tag == "testsuites" else [r]
for ts in suites: for ts in suites:
name = ts.get("name", f) name = ts.get("name", f)
tests = int(ts.get("tests", 0)) tests = int(ts.get("tests", 0))
failures = int(ts.get("failures", 0)) failures = int(ts.get("failures", 0))
errors = int(ts.get("errors", 0)) errors = int(ts.get("errors", 0))
@@ -51,28 +48,25 @@ runs:
total_errors += errors total_errors += errors
total_skipped += skipped total_skipped += skipped
rows.append(f"| {status} | {name} | {tests} | {passed} | {failures + errors} | {skipped} |") rows.append(f"| {status} | {name} | {tests} | {passed} | {failures + errors} | {skipped} |")
total_passed = total_tests - total_failures - total_errors - total_skipped total_passed = total_tests - total_failures - total_errors - total_skipped
overall = "✅ All tests passed" if (total_failures + total_errors) == 0 else "❌ Some tests failed" overall = "✅ All tests passed" if (total_failures + total_errors) == 0 else "❌ Some tests failed"
md = f"""# Test Report
**{overall}** md = (
"# Test Report\n\n"
f"**{overall}**\n\n"
"| | Tests | Passed | Failed | Skipped |\n"
"|---|---|---|---|---|\n"
f"| **Total** | {total_tests} | {total_passed} | {total_failures + total_errors} | {total_skipped} |\n\n"
"## Details\n\n"
"| Status | Suite | Tests | Passed | Failed | Skipped |\n"
"|---|---|---|---|---|---|\n"
) + "\n".join(rows) + "\n"
| | Tests | Passed | Failed | Skipped | with open("reports/index.md", "w") as out:
|---|---|---|---|---| out.write(md)
| **Total** | {total_tests} | {total_passed} | {total_failures + total_errors} | {total_skipped} | print(md)
EOF
## Details
| Status | Suite | Tests | Passed | Failed | Skipped |
|---|---|---|---|---|---|
""" + "\n".join(rows) + "\n"
with open("reports/index.md", "w") as out:
out.write(md)
print(md)
EOF
- name: Commit Report to Repo - name: Commit Report to Repo
shell: bash shell: bash