import hudson.model.*
if (manager.build.result == hudson.model.Result.SUCCESS) {
def qa_server = manager.build.buildVariables.get('QA_SERVER')
def desc = manager.build.getDescription()
if (desc == null) {
desc = ""
}
pattern = ~"${qa_server}/testjob/(\\d+)"
manager.build.logFile.eachLine { line ->
matcher = pattern.matcher(line)
if(matcher.matches()) {
def url = matcher.group(0)
def testjob_id = matcher.group(1)
desc += " QA Reports: ${testjob_id}
"
}
}
manager.build.setDescription(desc)
}
// Parse log file to find warnings and errors
def logFile = manager.build.logFile.text
def warnings = logFile =~ /(?ms)(^.*? warning: .*?$)/
def errors = logFile =~ /(?ms)(^.*? error: .*?$)/
def warningsCount = warnings.count
def errorsCount = errors.count
// Update parameters to include warnings and errors values
def action = manager.build.getAction(hudson.model.ParametersAction.class)
def parameters = [
new StringParameterValue("WARNINGS", "${warningsCount}"),
new StringParameterValue("ERRORS", "${errorsCount}")
]
updatedAction = action.createUpdated(parameters)
manager.build.replaceAction(updatedAction)