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 }}