@@ -1946,19 +1946,41 @@ def generateRerunReport(stageName, llmSrc) {
19461946 def rerunBaseDir = " ${ WORKSPACE} /${ stageName} /rerun"
19471947 def regularRerunDir = " ${ rerunBaseDir} /regular"
19481948
1949- // Check if regular rerun directory exists
1950- def hasRegularReruns = sh(script : " [ -d '${ regularRerunDir} ' ] && echo 'true' || echo 'false'" , returnStdout : true ). trim() == ' true'
1949+ // Check if regular rerun directory has rerun_results_*.xml files
1950+ def hasRegularReruns = sh(script : " [ -d '${ regularRerunDir} ' ] && find ' ${ regularRerunDir } ' -name 'rerun_results_*.xml' | head -1 | grep -q . && echo 'true' || echo 'false'" , returnStdout : true ). trim() == ' true'
19511951
1952- // Find all isolated rerun directories (isolated_0, isolated_1, etc.)
1953- def isolatedRerunDirs = []
1954- def isolatedDirsOutput = sh(script : " find ${ rerunBaseDir} -type d -name 'isolated_*' 2>/dev/null || true" , returnStdout : true ). trim()
1955- if (isolatedDirsOutput) {
1956- isolatedRerunDirs = isolatedDirsOutput. split(' \n ' ). findAll { it. trim() }
1952+ // Check if any isolated rerun directories have rerun_results_*.xml files
1953+ def hasIsolatedReruns = sh(script : " find ${ rerunBaseDir} -type d -name 'isolated_*' -exec find {} -name 'rerun_results_*.xml' \\ ; 2>/dev/null | head -1 | grep -q . && echo 'true' || echo 'false'" , returnStdout : true ). trim() == ' true'
1954+
1955+ // Find isolated tests that have actual rerun results and build mapping
1956+ def isolatedTestsWithReruns = []
1957+ if (hasIsolatedReruns) {
1958+ def isolatedDirsOutput = sh(script : " find ${ rerunBaseDir} -type d -name 'isolated_*' 2>/dev/null || true" , returnStdout : true ). trim()
1959+ if (isolatedDirsOutput) {
1960+ def isolatedDirs = isolatedDirsOutput. split(' \n ' ). findAll { it. trim() }
1961+ isolatedDirs. each { isolatedDir ->
1962+ // Extract the isolated number from directory name (e.g., isolated_0 -> 0)
1963+ def isolatedNum = isolatedDir. split(' /' ). last(). replace(' isolated_' , ' ' )
1964+
1965+ // Check if this isolated directory has any rerun results
1966+ def hasRerunResults = sh(script : " find '${ isolatedDir} ' -name 'rerun_results_*.xml' | head -1 | grep -q . && echo 'true' || echo 'false'" , returnStdout : true ). trim() == ' true'
1967+
1968+ if (hasRerunResults) {
1969+ isolatedTestsWithReruns. add([
1970+ dir : isolatedDir,
1971+ num : isolatedNum,
1972+ originalResult : " ${ WORKSPACE} /${ stageName} /results_isolated_${ isolatedNum} .xml"
1973+ ])
1974+ }
1975+ }
1976+ }
19571977 }
1958- def hasIsolatedReruns = isolatedRerunDirs. size() > 0
1978+
1979+ // Collect rerun result files and corresponding original result files
1980+ def rerunResultFiles = []
19591981
19601982 echo " Found regular reruns: ${ hasRegularReruns} "
1961- echo " Found isolated rerun directories : ${ isolatedRerunDirs } "
1983+ echo " Found isolated tests with reruns : ${ isolatedTestsWithReruns.collect { "isolated_${it.num}" } } "
19621984
19631985 if (! hasRegularReruns && ! hasIsolatedReruns) {
19641986 echo " No rerun results found, skipping rerun report generation"
@@ -1974,16 +1996,34 @@ def generateRerunReport(stageName, llmSrc) {
19741996 // Add original results
19751997 if (fileExists(" ${ WORKSPACE} /${ stageName} /results.xml" )) {
19761998 allInputFiles. add(" ${ WORKSPACE} /${ stageName} /results.xml" )
1999+ // Add to rerunResultFiles only if it has reruns
2000+ if (hasRegularReruns) {
2001+ rerunResultFiles. add(" ${ WORKSPACE} /${ stageName} /results.xml" )
2002+ }
19772003 }
19782004
1979- // Add isolated test results
2005+ // Add ALL isolated test results to allInputFiles
19802006 def isolatedResults = sh(script : " find ${ WORKSPACE} /${ stageName} -name 'results_isolated_*.xml' 2>/dev/null || true" , returnStdout : true ). trim()
19812007 if (isolatedResults) {
19822008 isolatedResults. split(' \n ' ). each { file ->
19832009 if (file. trim()) {
19842010 allInputFiles. add(file. trim())
19852011 }
19862012 }
2013+ // Add isolated test results that have reruns to rerunResultFiles and add their rerun results to allInputFiles
2014+ isolatedTestsWithReruns. each { isolatedTest ->
2015+ if (fileExists(isolatedTest. originalResult)) {
2016+ rerunResultFiles. add(isolatedTest. originalResult)
2017+ echo " Added isolated result with reruns to rerunResultFiles: ${ isolatedTest.originalResult} "
2018+ }
2019+ for (times in [1 , 2 ]) {
2020+ def rerunFile = " ${ isolatedTest.dir} /rerun_results_${ times} .xml"
2021+ if (fileExists(rerunFile)) {
2022+ allInputFiles. add(rerunFile)
2023+ rerunResultFiles. add(rerunFile)
2024+ }
2025+ }
2026+ }
19872027 }
19882028
19892029 // Add regular rerun results
@@ -1992,19 +2032,7 @@ def generateRerunReport(stageName, llmSrc) {
19922032 def rerunFile = " ${ regularRerunDir} /rerun_results_${ times} .xml"
19932033 if (fileExists(rerunFile)) {
19942034 allInputFiles. add(rerunFile)
1995- }
1996- }
1997- }
1998-
1999- // Add isolated rerun results from all isolated directories
2000- if (hasIsolatedReruns) {
2001- isolatedRerunDirs. each { isolatedDir ->
2002- for (times in [1 , 2 ]) {
2003- def rerunFile = " ${ isolatedDir} /rerun_results_${ times} .xml"
2004- if (fileExists(rerunFile)) {
2005- allInputFiles. add(rerunFile)
2006- echo " Added isolated rerun result: ${ rerunFile} "
2007- }
2035+ rerunResultFiles. add(rerunFile)
20082036 }
20092037 }
20102038 }
@@ -2014,14 +2042,14 @@ def generateRerunReport(stageName, llmSrc) {
20142042 return
20152043 }
20162044
2017- echo " Generating rerun report with input files: ${ allInputFiles .join(',')} "
2045+ echo " Generating rerun report with input files: ${ rerunResultFiles .join(',')} "
20182046
20192047 // Generate comprehensive rerun report
20202048 sh """
20212049 python3 ${ llmSrc} /jenkins/scripts/test_rerun.py \
20222050 generate_rerun_report \
20232051 --output-file=${ WORKSPACE} /${ stageName} /rerun_results.xml \
2024- --input-files=${ allInputFiles .join(",")}
2052+ --input-files=${ rerunResultFiles .join(",")}
20252053 """
20262054
20272055 // Update original results xml file with all rerun results for junit
0 commit comments