【问题标题】:Jenkins, Block or fail a job if any of its upstream jobs failed or unstableJenkins,如果上游作业失败或不稳定,则阻止或失败作业
【发布时间】:2013-04-10 17:19:32
【问题描述】:

如果 Jenkins 下游作业的任何上游作业失败或不稳定,阻止或失败的最佳方法是什么?

目前我已经勾选了“上游项目正在构建时块构建”选项,并且工作正常,因为我的下游工作正在等待所有上游工作完成构建。但是,如果任何上游失败或不稳定,我不想建立这项工作。

谢谢

【问题讨论】:

    标签: jenkins


    【解决方案1】:

    当您根据先前的作业创建作业时,触发器在底部的触发作业和顶部的触发作业中都可见。如果您查看底部的触发作业,则有一些选项可以决定是仅在成功时触发作业,还是不管作业的结果如何。

    确保Build Other Projectssetting 中的设置设置为Trigger only if build succeeds

    【讨论】:

    • 感谢 gaige 的回答,我已经完全按照您所说的进行了配置,并且只有在成功时才会触发其他作业。例如,问题是何时。 ProjectA 配置为“在构建其他项目后构建”ProjectB、ProjectC、ProjectD。现在,如果 ProjectC 失败,它显然会触发 A 的构建,但其他的会在它们通过时触发。因此,如果 ProjectB/C/D 中的任何一个失败,我想要一种停止/失败 ProjectA 的方法。再次感谢
    • 啊,不清楚前面的作业是并行运行的,而不是串行运行的。查看加入插件 (wiki.jenkins-ci.org/display/JENKINS/Join+Plugin),它允许您指定在运行一组其他作业后运行的作业,以及构建流程插件 (wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin),用于更复杂的并行构建和加入操作。
    • 您的建议可能是解决此问题的正确方法。但是在我的情况下,为我拥有的 70 个项目锻炼构建流程可能是一场噩梦,特别是当它们之间存在类似意大利面条的相互依赖时。我正在尝试用 maven 做一些事情来解决这个问题。
    • 如果它真的像意大利面条,您可能需要认真查看构建流程插件。它非常灵活,并使用自己的 DSL(特定领域语言)来描述相互依赖关系。
    猜你喜欢
    • 2011-09-18
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-18
    相关资源
    最近更新 更多