Files
CloudflareDNS-java/.github/actions/publish-report/action.yml
T

62 lines
2.0 KiB
YAML

name: Publish JUnit Report (Short Names)
description: Normalize JUnit XML report names and publish a summary-only test report.
inputs:
token:
description: GitHub token for creating the check run.
required: true
report-name:
description: Name shown for the test report.
required: false
default: Summary of JUnit Tests
runs:
using: composite
steps:
- name: Normalize JUnit report names
shell: bash
run: |
mkdir -p junit-short
shopt -s globstar nullglob
for f in **/target/*-reports/TEST-*.xml; do
base="$(basename "$f")"
short="${base#TEST-}"
short="${short%.xml}"
cp "$f" "junit-short/${short}"
done
- name: Generate HTML Report
shell: bash
run: |
pip install junit2html --quiet
python3 - <<'EOF'
import glob, xml.etree.ElementTree as ET
files = glob.glob("junit-short/*.xml")
root = ET.Element("testsuites")
for f in files:
tree = ET.parse(f)
r = tree.getroot()
if r.tag == "testsuites":
root.extend(r)
else:
root.append(r)
ET.ElementTree(root).write("junit-short/merged.xml")
EOF
mkdir -p reports
junit2html junit-short/merged.xml reports/index.html
- name: Commit Report to Repo
shell: bash
env:
GIT_USER: gitea-actions-bot
GIT_EMAIL: bot@mein-gateway.de
GITEA_TOKEN: ${{ inputs.token }}
run: |
git config user.name "$GIT_USER"
git config user.email "$GIT_EMAIL"
git remote set-url origin https://$GIT_USER:$GITEA_TOKEN@git.mein-gateway.de/${{ github.repository }}.git
git fetch origin
git checkout ${{ github.ref_name }}
git add reports/
git diff --cached --quiet && echo "No changes" && exit 0
git commit -m "ci: update test report [skip ci]"
git push origin ${{ github.ref_name }}