我的Jenkins pipline脚本有很多try / catch块,可在发生故障时通知我。是否有可能只有在前一个阶段失败后才能运行的阶段?
我当前的脚本看起来像这样。
stage('Stage 1') {
steps {
try {
// do something
}
catch(Exception e) {
bitbucketStatusNotify(buildState: 'FAILED')
error 'FAILED'
}
}
}
stage('Stage 2') {
steps {
try {
// do something
}
catch(Exception e) {
bitbucketStatusNotify(buildState: 'FAILED')
error 'FAILED'
}
}
}
stage('Stage 3') {
steps {
try {
// do something
}
catch(Exception e) {
bitbucketStatusNotify(buildState: 'FAILED')
error 'FAILED'
}
}
}
我想做这样的事情。
stage('Stage 1') {
steps {
// do something
}
}
stage('Stage 2') {
steps {
// do something
}
}
stage('Stage 3') {
steps {
// do something
}
}
stage('Only Run On Failure') {
steps {
bitbucketStatusNotify(buildState: 'FAILED')
}
}
答案 0 :(得分:1)
要在管道的任何阶段通知故障,请使用post actions。 然后,对于每个管道结果,您可以设置一些后期操作。
不成功的示例(任何以“ SUCCESS”结果结尾的构建):
stages{
stage('Stage 1') {
steps {
// do something
}
}
stage('Stage 2') {
steps {
// do something
}
}
stage('Stage 3') {
steps {
// do something
}
}
post{
success{
bitbucketStatusNotify(buildState: 'SUCCESS')
}
unsuccessful{
bitbucketStatusNotify(buildState: 'FAILED')
}
}