Jenkins:如果另一个工作不成功,我怎么能让构建失败?

时间:2018-04-23 15:16:41

标签: jenkins jenkins-pipeline jobs

我在詹金斯有两个独立的工作,但只有一个工作只允许在另一个工作岗位上运行。最后一个州成功了。

请注意:我不想自动触发工作;这两个工作都是手动触发的。

我怎样才能做到这一点?

注意:我正在使用Jenkins声明性管道语法。

2 个答案:

答案 0 :(得分:1)

有两种方法,我能想到:

    A。使用Parameterized Trigger Plugin:您可以将其用作构建步骤,并标记复选框“阻止直到被触发的项目完成他们的构建”。这应该是你正在寻找的。

      的。您可以尝试使用 Multijob Project 选项来完成此操作。 Multijob项目可以帮助您控制运行给定作业集的方式 - 在并行阶段或不同阶段,以便一个人在另一个阶段之后执行或独立于前一阶段的结果(在您的情况下,它依赖于)
      1。转到Jenkins主页。
      2。寻找'新项目'。
      3。从选项中选择“Multijob Project”。给这个Multijob命名,比如,JobSuite。

    enter image description here

      4。根据您对以下选项的要求配置“JobSuite”。这些选项非常明显,您可以添加要触发此作业的参数。供您参考,我添加了一个参数。如果您的作业在某个奴隶中运行,请检查并选择您要限制其运行的节点,否则请将其取消选中

    enter image description here

      5。向下滚动,您将看到一个名为“添加构建步骤”的按钮。选择“Multijob phase”。

    enter image description here

      6。为multijob阶段提供一些名称,默认情况下,您将能够配置一个作业。输入第一个作业的名称,比如job1,您可以添加参数并传递参数。举个例子,我试图通过“预定义参数”传递一个参数,该参数将在触发JobSuite时作为输入。

      填写'杀死阶段'='失败(如果工作失败则停止阶段执行)'和'当工作状态为'='成功'时,继续条件进入下一阶段。这将确保下一阶段仅在当前阶段通过时运行。

      注意:如果您想在此阶段并行运行更多作业,请单击“添加作业”,在您的情况下,我们需要为job1顺序运行和job2。因此,我们需要两个阶段。

    enter image description here enter image description here

      7。重复步骤5以添加另一个将承载第二个作业的阶段:job2。申请并保存。

    enter image description here

      8。您可以根据需要添加一些Post-build Actions,例如电子邮件通知等。
      9。使用所需参数运行Mutijob项目 - JobSuite。只有job1成功,您才会看到job2运行。

    我希望这会对你有所帮助。

答案 1 :(得分:0)

使用先决条件检查构建步骤并配置上游作业以检查状态

enter image description here

请参阅此处的插件:https://wiki.jenkins.io/display/JENKINS/Prerequisite+build+step+plugin

如果添加插件是一个障碍(例如限制管理员访问),我建议您将上游作业状态的详细信息记录到文件或DB中,并将其作为下游作业的第一步获取。