我在詹金斯有一些工作。其中一个与数据库有关,我希望它在子版本发生变化时才能构建。同时,我希望它可以在另一个项目之后构建。更清楚一点,考虑我有两个项目A和B,我希望在成功构建A之后构建B,只要B的子版本有变化。如何配置?
编辑1:
如果我将某个其他项目(即C)的构建设置为在项目B中作为后期构建操作触发,则如果B没有SCM更改,则不会构建C。怎么解决这个问题?
编辑2:
为了澄清我的问题,我这样说。我有一些名为A,B和C的项目。我想将它们放在构建队列中,因为它们相互依赖:A - > B - > C.但有一些考虑因素。 B是一个数据库项目,它应该在数据库中有任何升级时构建,否则会给我一些错误。此外,如果B的SCM发生任何变化,我们必须在C之前建立B;因为它会影响项目C的功能。所以,简单来说,我希望Jenkins遵循以下步骤:
任何人都可以帮我吗?
答案 0 :(得分:3)
Downstream-Ext Plugin似乎正在寻找你正在寻找的东西。我没有用它,因为我从来没有觉得它需要它。 :)
安装完成后,在作业的配置页面中,转到Post-build Actions > Build other projects (extended)
。休息可以从下面的快照中看到。我已经指定了我的下游作业B,启用了复选框Trigger only if downstream project has SCM changes
&在构建结果下拉列表中选择了相等,因为只有当我的父作业A始终成功并且B有SCM(在您的情况下为SVN)发生更改时,我才想触发作业B.
答案 1 :(得分:1)
我会在作业B中处理。
让您的工作流程始终触发A - > B - >下进行。
现在在B作业中,使用Conditional Build Step运行一个脚本,该脚本将验证B项目是否没有SCM更改。如果没有更改,请跳过构建步骤并继续触发C.否则构建B并继续触发C。