def updateGithubCommitStatusFromBuildResult()

in jenkins-pipeline-shared-libraries/vars/githubscm.groovy [647:674]


def updateGithubCommitStatusFromBuildResult(String checkName) {
    println "[INFO] Update commit status for check ${checkName} from build result"
    String buildResult = currentBuild.currentResult
    println "[DEBUG] Got build result ${buildResult}"

    def testResults = util.retrieveTestResults()
    println "[DEBUG] Got test results ${testResults}"
    String testsInfo = testResults ? "${testResults.passCount + testResults.skipCount + testResults.failCount} tests run, ${testResults.failCount} failed, ${testResults.skipCount} skipped." : 'No test results found.'

    int jobDuration = util.getJobDurationInSeconds()
    println "[DEBUG] Got job duration ${jobDuration} seconds"
    String timeInfo = util.displayDurationFromSeconds(jobDuration)

    switch (buildResult) {
        case 'SUCCESS':
            updateGithubCommitStatus(checkName, 'SUCCESS', "(${timeInfo}) Check is successful. ${testsInfo}".trim())
            break
        case 'UNSTABLE':
            updateGithubCommitStatus(checkName, 'FAILURE', "(${timeInfo}) Test failures occurred. ${testsInfo}".trim())
            break
        case 'ABORTED':
            updateGithubCommitStatus(checkName, 'ERROR', "(${timeInfo}) Job aborted. ${testsInfo}".trim())
            break
        default:
            updateGithubCommitStatus(checkName, 'ERROR', "(${timeInfo}) Issue in pipeline. ${testsInfo}".trim())
            break
    }
}