pipeline {
agent any
stages {
stage('catch error') {
steps {
catchError(buildResult: 'SUCCESS') {
sh "exit 1"
}
}
}
stage('summary') {
steps {
echo "here comes the summary..."
}
}
}
}
Result:
Running in Durability level: MAX_SURVIVABILITY
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 6: Expecting "class hudson.model.Result"for parameter "buildResult" but got "SUCCESS" of type class java.lang.String instead @ line 6, column 41.
catchError(buildResult: 'SUCCESS')
^
1 error
at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1085)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
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:133)
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:126)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:561)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:522)
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:320)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)
Finished: FAILURE
Thanks for filing a separate ticket! I was not able to reproduce this in a scripted Pipeline, but I spoke with Andrew Bayer about this today, and he thought that it might be possible this issue was specific to Declarative. My guess is that it has to do with the way that Result registers a custom converter via Stapler here rather than using normal data binding.
A fix for this issue was just released in Pipeline Basic Steps Plugin version 2.17. Note that you must update Pipeline Groovy Plugin version 2.70 along with this update.
A fix for this issue was just released in Pipeline Basic Steps Plugin version 2.17. Note that you *must* update Pipeline Groovy Plugin to version 2.70 along with this update.
Andrei Muresianu Yes, it should turn yellow in your example. I think that JENKINS-57579 is that problem, and we are waiting on a Blue Ocean fix to be merged and released to fix it. (In some cases, things work without the fix, but I think sequential stages are problematic.)
A fix for this issue was just released in Pipeline Basic Steps Plugin version 2.1718. Note that you *must* update Pipeline Groovy Plugin to version 2.70 along with this update.
Andrew Mullens Yes, this issue is fixed, see this comment. Make sure you are passing a String to catchError and not an object of type Result. If that still isn't working for you, please post an extract from your Jenkinsfile showing how you are using catchError.
Hey Devin, thank you. I saw that and was passing in a string, but turns out our Plug in Version is 2.66. So it should work once we update the plug in. Thanks again.
We just updated from v2.16 to v2.204 this morning and this line (and similar) has been causing our declarative pipelines to break. I'm not sure what the right format is