diff --git a/.github/actions/publish-report/action.yml b/.github/actions/publish-report/action.yml index 46ae790..9b79a43 100644 --- a/.github/actions/publish-report/action.yml +++ b/.github/actions/publish-report/action.yml @@ -1,13 +1,9 @@ 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: token: - description: GitHub token for creating the check run. + description: Gitea token with write access to the repository. required: true - report-name: - description: Name shown for the test report. - required: false - default: Summary of JUnit Tests runs: using: composite @@ -27,19 +23,20 @@ runs: - name: Generate Markdown Report shell: bash run: | + mkdir -p reports python3 - <<'EOF' import glob, xml.etree.ElementTree as ET - + files = glob.glob("junit-short/*.xml") total_tests = total_failures = total_errors = total_skipped = 0 rows = [] - + for f in sorted(files): tree = ET.parse(f) r = tree.getroot() suites = r.findall("testsuite") if r.tag == "testsuites" else [r] for ts in suites: - name = ts.get("name", f) + name = ts.get("name", f) tests = int(ts.get("tests", 0)) failures = int(ts.get("failures", 0)) errors = int(ts.get("errors", 0)) @@ -51,28 +48,25 @@ runs: total_errors += errors total_skipped += skipped rows.append(f"| {status} | {name} | {tests} | {passed} | {failures + errors} | {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" - - 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 | - |---|---|---|---|---| - | **Total** | {total_tests} | {total_passed} | {total_failures + total_errors} | {total_skipped} | - - ## 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 + with open("reports/index.md", "w") as out: + out.write(md) + print(md) + EOF - name: Commit Report to Repo shell: bash