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
Build and Analyse / build-and-analyse (push) Successful in 39s
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user