我们有一个jenkins工作(A)触发其他3个工作(B1,B2,B3)。 这3个工作都触发了相同的工作(C)。 当触发作业A时,作业C执行两次(我预期3次)。
问题:有人可以解释为什么C被触发两次而不是三次?
依赖关系概述:
-> B1 ->
A -> B2 -> C
-> B3 ->
下游构建视图显示其中两个作业(例如B2,B3)仅触发一次C的执行。请注意,这两个作业并不总是相同。
执行概述(A的下游构建视图)
-> B1 -> C (build number 1)
A -> B2 -> C (build number 2)
-> B3 -> C (build number 2) <<< same as for B2
有关工作配置的更多详细信息:
作业A具有构建后动作/构建其他项目:B1,B2,B3
在构建其他项目后,作业C具有构建触发器/构建/要观察的项目:B1,B2,B3
Jenkins版本:1.583
答案 0 :(得分:1)
这就是Jenkins如何触发工作的方式。如果C中不允许并发构建(我认为它们不是),则会发生以下情况:
如您所见,C只运行了两次。
但是有一个解决方法。使C参数化并提供不同的值(例如触发器的作业名称)。或者允许并发构建C - 但您必须确保它不会访问相同的共享资源(例如,通过关键部分排除)。