【发布时间】:2021-09-06 09:17:42
【问题描述】:
我的第一阶段运行一个 shell 脚本。退出 0 将其标记为成功,退出 1 将其标记为失败。如何将此结果读入管道并获得所需的行为:
- 运行阶段 1
- 如果第 1 阶段失败,则不要运行其余阶段,而是将整个管道标记为成功
- 如果第 1 阶段成功,则运行其余阶段
- 如果其中任何一个失败,则将管道标记为失败
- 如果都成功,则将管道标记为成功
我在声明式管道中执行此操作,如何强制执行此行为?
【问题讨论】:
我的第一阶段运行一个 shell 脚本。退出 0 将其标记为成功,退出 1 将其标记为失败。如何将此结果读入管道并获得所需的行为:
我在声明式管道中执行此操作,如何强制执行此行为?
【问题讨论】:
你可以使用这样的东西,捕捉错误,然后改变 currentBuild 结果:
pipeline {
agent any
stages {
stage('Stage 1') {
steps {
script {
try {
// do something that fails
sh "exit 1"
} catch (Exception err) {
currentBuild.result = 'SUCCESS'
}
}
}
}
stage('Stage 2') {
steps {
echo "Stage 2"
}
}
stage('Stage 3') {
steps {
echo "Stage 3"
}
}
}
}
如果您需要更改特定阶段的结果,请查看 this link 并解释如何执行它。
【讨论】: