确定哪个下游作业失败并在Jenkins中发送通知

时间:2016-08-03 06:29:45

标签: jenkins jenkins-plugins

我在Jenkins中创建了一个包装器作业,如果我的GIT存储库中有任何新的提交,它将每小时触发一次。这个包装器作业又调用了6个其他下游作业。所以我的包装工作(W)的结构是这样的:

W - > A - > B - > C - > D - > E - > ˚F

我正在使用Jenkins参数化触发器插件将一个作业缝合到另一个作业,以便在下游作业失败时我的上游作业失败。完成最后一个下游作业(F)后,包装作业(W)正在复制当前工作空间中所有下游作业的工件。

现在当我的一个下游作业(假设E)失败时,我从失败的下游作业(E)以及所有其他上游作业(D,C,B,A和W)收到失败通知。所以我总共收到6封邮件,它会产生一些噪音。

如果我仅在Wrapper作业(W)上激活电子邮件通知,那么我会收到一条提示作业A失败的失败通知。然后我将检查作业A的日志,发现作业B失败并继续进行日志检查,直到我到达作业E.

如何自定义通知以发送单个邮件,以识别导致失败的特定下游作业(在本例中为E)?

OR

是否有更好的方法来触发下游作业,等待所有下游作业完成并将所有下游作业中的工件复制到触发器作业?

1 个答案:

答案 0 :(得分:0)

在Groovy Postbuild中编写一个Groovy脚本来遍历包装器作业的所有子项目,如果任何子项目失败,则将包装器作业标记为失败。

还更改了"在其他项目上触发/调用构建的退出条件"永远不要将工作标记为失败/不稳定。相反,根据下游子项目的状态,在groovy脚本中处理将作业设置为失败的调用。