如何设置"在其他项目建成之后构建"和"民意调查SCM"同时在詹金斯

时间:2014-08-31 14:28:28

标签: jenkins jenkins-plugins

我在詹金斯有一些工作。其中一个与数据库有关,我希望它在子版本发生变化时才能构建。同时,我希望它可以在另一个项目之后构建。更清楚一点,考虑我有两个项目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遵循以下步骤:

  1. Build A。
  2. 检查B的SCM。
  3. 如果B的SCM有任何变化,则构建B,否则跳过构建B。
  4. Build C。
  5. 任何人都可以帮我吗?

2 个答案:

答案 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.

enter image description here

答案 1 :(得分:1)

我会在作业B中处理

让您的工作流程始终触发A - > B - >下进行。

现在在B作业中,使用Conditional Build Step运行一个脚本,该脚本将验证B项目是否没有SCM更改。如果没有更改,请跳过构建步骤并继续触发C.否则构建B并继续触发C。