我有一个声明性的Jenkins流水线,其中包括stage1
、stage2
、stage3
等等。如果stage1
设置构建为不稳定/失败,我想停止运行stage2
。
我知道我可以使用return
在构建不成功时停止stage1
中的步骤运行,但找不到一种方法可以仅退出整个流水线而不运行stage1
下面的阶段。
以下是我的代码:
stage('stage1') {
steps {
script{
//somesteps
if ("${stdout}" == "1"){
currentBuild.result = 'UNSTABLE'
return
} //if
//somesteps
} //script
} //steps
} //stage
// run only when stage1 is success
stage('stage2'){
when {
expression {
params.name ==~ /x|y/
}
}
steps {
script{
//stage2 steps
}
}
}
如果params.name ==~ /z/
,阶段3将被执行并跳过阶段2。注意:我不能在第一阶段中包含第二/三/...阶段的步骤。它应该是这样的。根据构建参数,阶段2/3/4...将在第一阶段之后被调用。