in jenkins-pipeline-shared-libraries/vars/util.groovy [351:411]
String getMarkdownTestSummary(String jobId = '', String additionalInfo = '', String buildUrl = "${BUILD_URL}", String outputStyle = 'ZULIP') {
def jobInfo = retrieveJobInformation(buildUrl)
// Check if any *_console.log is available as artifact first
String defaultConsoleLogId = 'Console Logs'
Map consoleLogs = jobInfo.artifacts?.collect { it.fileName }
.findAll { it.endsWith('console.log') }
.collectEntries { filename ->
int index = filename.lastIndexOf('_')
String logId = index > 0 ? filename.substring(0, index) : defaultConsoleLogId
return [ (logId) : retrieveArtifact(filename, buildUrl) ]
} ?: [ (defaultConsoleLogId) : retrieveConsoleLog(50, buildUrl)]
String jobResult = jobInfo.result
String summary = """
${jobId ? "**${jobId} job**" : 'Job'} ${formatBuildNumber(outputStyle, BUILD_NUMBER)} was: **${jobResult}**
"""
if (!isJobResultSuccess(jobResult)) {
summary += "Possible explanation: ${getResultExplanationMessage(jobResult)}\n"
}
if (additionalInfo) {
summary += """
${additionalInfo}
"""
}
if (!isJobResultSuccess(jobResult)) {
boolean testResultsFound = false
summary += "\nPlease look here: ${buildUrl}display/redirect"
try {
def testResults = retrieveTestResults(buildUrl)
def failedTests = retrieveFailedTests(buildUrl)
testResultsFound=true
summary += """
\n**Test results:**
- PASSED: ${testResults.passCount}
- FAILED: ${testResults.failCount}
"""
summary += 'GITHUB'.equalsIgnoreCase(outputStyle) ? """
Those are the test failures: ${failedTests.size() <= 0 ? 'none' : '\n'}${failedTests.collect { failedTest ->
return """<details>
<summary><a href="${failedTest.url}">${failedTest.fullName}</a></summary>
${formatTextForHtmlDisplay(failedTest.details ?: failedTest.stacktrace)}
</details>"""
}.join('\n')}
"""
: """
Those are the test failures: ${failedTests.size() <= 0 ? 'none' : '\n'}${failedTests.collect { failedTest ->
return """```spoiler [${failedTest.fullName}](${failedTest.url})
${failedTest.details ?: failedTest.stacktrace}
```"""
}.join('\n')}
"""
} catch (err) {
echo 'No test results found'
}