我在jenkins工作中使用构建阻止程序和MultiJob插件来编排管道。
这是我想要实现的一小部分。
工作中的依赖关系 JobA - >工作B - (加入插件) - >工作C和工作D - > JobE(加入插件结束)
另一份工作 作业A1(构建拦截器插件包含作业E的作业B列表)
现在我在多工作阶段创建了2个阶段,Suite 1和Suite 2,在套件1中我只运行JOb A(然后将调用作业B等等)而在Suite 2中我正在调用作业A1
问题:
jobA完成后,multijob插件认为阶段已完成,因此它将A1作业放入队列,但由于作业B也在此时运行,因此A1保留在队列中(由于buildblocker)。 因此,那时的队列包含作业B和作业A1,但是一旦作业B完成并且在能够将作业C和作业D放入队列之前,作业A1就开始执行。
这个问题有什么解决方案吗?上面的例子只是我想要实现的一小部分,我知道有很多方法可以用简单的方式实现,但是我需要编排一个更大的管道,其中几个作业以复杂的方式相互依赖,所以需要一个针对上述问题的解决方案。
谢谢, Manish Joshi
答案 0 :(得分:0)
通过结合使用Build Flow和MultiJob插件,我能够实现这一结果。
我创建了一个构建流程作业,并将其命名为Suite1,其中包含 建设( “jobA1”) 建设( “jobB1”) 平行( {版本( “jobC1”)}, {建立( “jobD1”)} ) 建设( “jobE1”) 在另一个工作Suite2我正在运行工作A2,然后在multijob插件中分阶段运行Suite1和Suite2
因此,现在工作A2正在等待,直到jobE1完成,我想要实现。
谢谢, 和Manish