1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2025-01-22 05:33:10 +02:00

add new step for notification publication

This commit is contained in:
Christopher Fenner 2019-04-08 21:38:35 +02:00
parent 35ced01ffa
commit d2fd7f2acd
No known key found for this signature in database
GPG Key ID: 749881F766EA636F

View File

@ -0,0 +1,59 @@
import com.sap.icd.jenkins.Utils
import com.sap.piper.JenkinsUtils
import groovy.transform.Field
import static com.sap.piper.Prerequisites.checkScript
@Field def STEP_NAME = getClass().getName()
void call(Map parameters = [:]) {
handleStepErrors (stepName: STEP_NAME, stepParameters: parameters, allowBuildFailure: true) {
def script = checkScript(this, parameters) ?: this
def utils = parameters.juStabUtils ?: new Utils()
// report to SWA
utils.pushToSWA([
folder: script.globalPipelineEnvironment.getGithubOrg(),
repository: script.globalPipelineEnvironment.getGithubRepo(),
step: STEP_NAME
])
Map piperNotificationsSettings = [
parserName: 'Piper Notifications Parser',
parserLinkName: 'Piper Notifications',
parserTrendName: 'Piper Notifications',
parserRegexp: '\\[(INFO|WARNING|ERROR)\\] (.*) \\(([^) ]*)\\/([^) ]*)\\)',
parserExample: ''
]
piperNotificationsSettings.parserScript = '''import hudson.plugins.warnings.parser.Warning
import hudson.plugins.analysis.util.model.Priority
Priority priority = Priority.LOW
String message = matcher.group(2)
String libraryName = matcher.group(3)
String stepName = matcher.group(4)
String fileName = 'Jenkinsfile'
switch(matcher.group(1)){
case 'WARNING': priority = Priority.NORMAL; break;
case 'ERROR': priority = Priority.HIGH; break;
}
return new Warning(fileName, 0, libraryName, stepName, message, priority);
'''
// add Piper Notifications parser to config if missing
if(JenkinsUtils.addWarningsParser(piperNotificationsSettings)){
echo "[${STEP_NAME}] New Warnings plugin parser '${piperNotificationsSettings.parserName}' configuration added."
}
node(){
try{
// parse log for Piper Notifications
warnings(canRunOnFailed: true, consoleParsers: [[ parserName: piperNotificationsSettings.parserName ]])
}finally{
deleteDir()
}
}
}
}