在Jenkins的作业构建步骤中包含不同的作业

时间:2014-06-13 12:07:25

标签: jenkins jenkins-plugins

我正在尝试制作这个相当独特的构建流程,但我还没有找到插件或者用jenkins来实现它的方法。

有一个名为“JOB A”的作业,它自己使用并创建一个独立的安装程序。 然后有“JOB B”创建另一个安装程序,但除了其他一些东西之外,还需要包含“JOB A”中内置的所有东西。现在我可以将JOB A构建步骤复制到JOB B中,但我想实际构建JOB A,甚至可能稍后使用这些工件。

它不能是构建触发器,因为JOB A完成后JOB B需要继续构建,我不能使用类似flow的东西,因为它创建了JOB C并且只对其他作业进行排序,我需要进入A和B才能获得文物。

如果它在构建JOB B并确定是否需要再次构建JOB B时检查了自上次构建以来的任何更改,那么它是否会在git中检查JOB A源代码。

我查看了许多插件,但我似乎无法找到能够做到这一点的插件。

我希望我的解释不会令人困惑。对不起,如果是,我可以详细说明。

1 个答案:

答案 0 :(得分:3)

如果我理解你想要什么,那么你需要的是:

对于JOB AJOB B两者,将自定义工作区设置为服务器上的同一文件夹(您甚至可以保留JOB A工作区,只需指向JOB B客户工作空间到JOB A的工作空间。我不在Jenkins工作的计算机上,也无法提供屏幕截图,因此我将借用 this great guide for more info on how to setup custom workspace

然后,在适当的时候,让JOB A执行构建步骤在其他项目上触发/调用构建,即JOB B。你甚至可以传递JOB A所有相同的参数。默认情况下,这不会等待JOB B完成。它将启动JOB B,同时JOB A将完成运行,然后JOB B完成后就会完成。

如果需要,您可以选中阻止,直到触发的项目完成构建,然后JOB A将等待JOB B完成后再继续。

所以,上面的意思是:

  • 共享工作区,如果代码没有更改,则不进行额外检查
  • JOB AJOB B独立存在,并拥有自己的工件,并且每个工件都可以单独触发。
  • JOB B将获取从JOB A到共享工作区并传递参数的所有内容。