@@ -22,14 +22,39 @@ runs:
2222 PR="${{ inputs.pr-number }}"
2323 if [ "$PR" != "" ]; then
2424 shopt -s nullglob globstar
25+
26+ # Load flaky-test-issues mapping (written by track_flaky_tests.sh)
27+ declare -A ISSUE_MAP
28+ declare -A COMMENT_COUNT_MAP
29+ if [ -f flaky-test-issues.map ]; then
30+ while IFS=$'\t' read -r key number count; do
31+ ISSUE_MAP["$key"]="$number"
32+ COMMENT_COUNT_MAP["$key"]="$count"
33+ done < flaky-test-issues.map
34+ fi
35+
2536 FLAKY_TEST_GLOB="**/target/*-reports*/**/TEST-*FLAKY.xml"
2637 TESTS=(${FLAKY_TEST_GLOB})
2738 for TEST in "${TESTS[@]}"
2839 do
29- FULL_TEST_NAME =$(xmlstarlet sel -T -t -m "/testsuite/testcase" -o ' - ' \
40+ RAW_NAMES =$(xmlstarlet sel -T -t -m "/testsuite/testcase" \
3041 -v "concat(@classname,'#',@name)" -n ${TEST} \
3142 | sed 's/(Flaky Test)//' | sed 's/\[[0-9]\]//')
32- FLAKES_PR_COMMENT="$FLAKES_PR_COMMENT$FULL_TEST_NAME\n"
43+ while IFS= read -r LINE; do
44+ [ -z "$LINE" ] && continue
45+ # Strip leading/trailing whitespace
46+ LINE=$(echo "$LINE" | xargs)
47+ # Build lookup key by stripping parameters (same logic as track_flaky_tests.sh)
48+ LOOKUP_KEY="${LINE%%\[*}"
49+ LOOKUP_KEY="${LOOKUP_KEY%%(*}"
50+ if [ -n "${ISSUE_MAP[$LOOKUP_KEY]+x}" ]; then
51+ ISSUE_NUM="${ISSUE_MAP[$LOOKUP_KEY]}"
52+ SEEN_COUNT=$(( ${COMMENT_COUNT_MAP[$LOOKUP_KEY]} + 1 ))
53+ FLAKES_PR_COMMENT="$FLAKES_PR_COMMENT - [${LINE}](https://github.com/${{ github.repository }}/issues/${ISSUE_NUM}) (seen ${SEEN_COUNT} times)\n"
54+ else
55+ FLAKES_PR_COMMENT="$FLAKES_PR_COMMENT - ${LINE}\n"
56+ fi
57+ done <<< "$RAW_NAMES"
3358 done
3459 if [ "$FLAKES_PR_COMMENT" != "" ]; then
3560 pr_url=https://github.com/${{ github.repository }}/pull/$PR
0 commit comments