我想在 Jenkins 声明性管道语法中定义多个阶段,这些阶段可以继续通过其中任何一个失败。我找不到任何真正重复的现有问题,因为它们都假定或允许脚本语法。
pipeline {
agent any
stages {
stage('stage 1') {
steps {
echo "I need to run every time"
}
}
stage('stage 2') {
steps {
echo "I need to run every time, even if stage 1 fails"
}
}
stage('stage 3') {
steps {
echo "Bonus points if the solution is robust enough to allow me to continue *or* be halted based on previous stage status"
}
}
}
}
澄清一下,我不是在寻找如何在脚本语法中完成此操作。我试图了解这种流控制是否真的在声明性语法中得到支持和形式化。为此,我将尝试准确定义我正在寻找的内容:
必需的
- 没有尝试/捕捉。我不想进入脚本模式,或者在另一个共享库或脚本块中“包装”我的声明性管道。
- 没有
post step
恶作剧。我想要真正的多个阶段,而不是一个阶段post always
包含我所有其他逻辑的步骤
可选的
- 失败阶段应被认定为失败;我不希望失败的阶段显示为绿色,因为它被“跳过”或“继续”。
- 任何阶段失败的构建都应标记为红色(或黄色,或任何非绿色)。