理想情况下,我想在声明性Jenkins管道中处理失败并向委员会发送电子邮件。但我根本无法上班。我有以下脚本:
pipeline {
agent any
stages {
stage('Prepare') {
steps {
cleanWs
checkout scm
}
}
}
post {
always {
echo '============'
echo 'In Post part'
echo '============'
echo currentBuild.result // this prints null
}
}
}
在我的Jenkins版本中cleanWs()
未定义,因此构建失败并显示:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 11: Expected a step @ line 11, column 17.
cleanWs
^
1 error
at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1073)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:591)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:569)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:546)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
at groovy.lang.GroovyShell.parse(GroovyShell.java:700)
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.doParse(CpsGroovyShell.java:129)
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:123)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:516)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:479)
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:253)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:405)
Finished: FAILURE
但正如你所看到的,没有
============
In Post part
============
因此post
always
未执行。
答案 0 :(得分:3)
根本没有执行您的管道,请参阅错误:MultipleCompilationErrorsException: startup failed:
。由于甚至无法编译管道脚本,因此作业根本无法启动,因此显然不会执行post
块。由于无法编译源代码,因此无论如何jenkins都不知道任何post
块。