在我的Jenkins脚本管道中,我正在执行一些任务的1个阶段,然后发送Slack消息。如果前一阶段通过或失败,我想发送这些Slack消息,为此,我使用catchError()
,它完全按照我的需要工作。当我想中止构建时,问题就出现了。
如果我中止构建,我想完全退出构建,不发送Slack消息,但我的catchError()
正在捕获此中止,然后继续管道并发送消息。
stage('first stage with catchError') {
catchError(buildResult: 'UNSTABLE', stageResult: 'UNSTABLE', catchInterruptions: false) {
// Do some stuff here and continue the build if anything fails
}
}
stage('second stage that send slack messages) {
// Send some Slack messages based on the data produced in the first stage and based on if the tasks were a success or they failed
}
我想我可以使用catchError()
中的catchInterruptions
选项来中止整个构建(这里是这个函数的文档链接),但显然没有产生我想要的行为。我该怎么做呢?
1条答案
按热度按时间5vf7fwbs1#
我只是太傻了,误解了文件。我只需要将
catchInterruptions
选项设置为true(这是默认值)。OR(因为true是默认值)