运行 即使上一个作业在 Jenkins 构建流程中失败,也会按顺序执行下一个作业
Run next job in sequence even if the previous job fails in a Jenkins Build flow
我有一个构建流程,它按顺序构建 4 个作业
例如;
build(Job 1)
build(Job 2)
build(Job 3)
build(Job 4)
我想 运行 作业 4,即使之前的任何作业也失败了。我怎样才能在构建流程中做到这一点?
您可以将传播设置为 false,这将确保您的工作流程在特定作业失败时继续:
build job: '<job_name>', propagate: false
您可以按如下方式使用Jenkins Workflow Plugin:
try {
build 'A'
} catch(e) {
echo 'Build for job A failed'
}
try {
build 'B'
} catch(e) {
echo 'Build for job B failed'
}
您可以将此习语扩展到任意数量的作业或您想要的 success/failure 流程的任意组合(例如,如果您想构建 catch
es,则添加 build
步骤一些工作以防另一个失败。
对我来说,propagate: false
没有用,所以我在我的 BuildFlow 中使用了 ignore(FAILURE)
,以确保流程中的所有作业都执行,即使出现故障也是如此。 (Ref)
ignore(FAILURE) {
build("JobToCall", Param1: "param1Val", Param2: "param2Val")
}
我有一个构建流程,它按顺序构建 4 个作业
例如;
build(Job 1)
build(Job 2)
build(Job 3)
build(Job 4)
我想 运行 作业 4,即使之前的任何作业也失败了。我怎样才能在构建流程中做到这一点?
您可以将传播设置为 false,这将确保您的工作流程在特定作业失败时继续:
build job: '<job_name>', propagate: false
您可以按如下方式使用Jenkins Workflow Plugin:
try {
build 'A'
} catch(e) {
echo 'Build for job A failed'
}
try {
build 'B'
} catch(e) {
echo 'Build for job B failed'
}
您可以将此习语扩展到任意数量的作业或您想要的 success/failure 流程的任意组合(例如,如果您想构建 catch
es,则添加 build
步骤一些工作以防另一个失败。
对我来说,propagate: false
没有用,所以我在我的 BuildFlow 中使用了 ignore(FAILURE)
,以确保流程中的所有作业都执行,即使出现故障也是如此。 (Ref)
ignore(FAILURE) {
build("JobToCall", Param1: "param1Val", Param2: "param2Val")
}