1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2024-12-14 11:03:09 +02:00
sap-jenkins-library/vars/handlePipelineStepErrors.groovy
Christopher Fenner dabbc724ad
handlePipelineStepErrors: extract error message to template (#350)
* add template for handleStepErrors

* add tests

* use template

* fix indent

* fix typo

* Update HandlePipelineStepErrorTest.groovy

* Update HandlePipelineStepErrorTest.groovy
2018-10-24 13:36:30 +02:00

35 lines
1.1 KiB
Groovy

import groovy.text.SimpleTemplateEngine
import groovy.transform.Field
@Field STEP_NAME = 'handlePipelineStepErrors'
void call(Map parameters = [:], body) {
def stepParameters = parameters.stepParameters //mandatory
def stepName = parameters.stepName //mandatory
def verbose = parameters.get('echoDetails', true)
def message = ''
try {
if (stepParameters == null && stepName == null)
error "step handlePipelineStepErrors requires following mandatory parameters: stepParameters, stepName"
if (verbose)
echo "--- BEGIN LIBRARY STEP: ${stepName} ---"
body()
} catch (Throwable err) {
if (verbose)
message += SimpleTemplateEngine.newInstance()
.createTemplate(libraryResource('com.sap.piper/templates/error.log'))
.make([
stepName: stepName,
stepParameters: stepParameters?.toString(),
error: err
]).toString()
throw err
} finally {
if (verbose)
message += "--- END LIBRARY STEP: ${stepName} ---"
echo message
}
}