2016-09-21 208 views
1

我有一个管道作业,检出git存储库(让我们 调用是“repoA”),并将它传递给其他下游作业 进一步处理。上游作业的脚本存储在不同的 git repo中(我们称之为“repoB”)。此作业配置了“Poll SCM”选项,以便对repoA进行任何更改都会触发它。在管道部分,我选择了“来自SCM的管道脚本”选项,并将其配置为从repoB的主分支获取管道脚本。我还添加了“不触发构建在提交通知上”选项。我期望的行为是任何推送到repoA的更改都会触发作业 ,而对repoB的任何更改都不会触发作业。但是,当我将 更改为repoB时,作业被触发。Jenkins构建被触发,尽管“不触发构建的提交通知”

我不知道这是一个错误,还是我错过了一些东西。

我正在运行Jenkins 2.7.4。我的主Jenkins在Ubuntu服务器16.04.1 LTS上运行。我所有的Jenkins插件都是最新的。

回答

1

与詹金斯邮件列表的交换之后,我现在明白了更好的东西怎么那么在这里工作是我不得不在案件做其他人需要它:

  • 创建一个git钩来通知詹金斯改变一直致力于/推:我们的目的,我们创建了一个后收到钩上的远程
  • 你的工作启用轮询,但留下的时间表空
  • 在管道部分,其配置为从您的git拉Groovy脚本回购(在我的例子中是repoB),但不要添加行为:“不要触发构建的提交通知“
  • 确保查询的方式,当你检出你的Git仓库(在我的例子是repoA)在你的脚本:在默认情况下,如果你不指定它

据我了解启用,选项“不触发建立在提交通知上”是用于通知来自挂钩而不是来自作业轮询计划的通知,正如我第一次想到的那样。

+0

您如何获得Jenkins未通过签入repoB来启动构建的行为?我的构建仍然会通过两个回购签入开始,但我只希望通过签入repoA开始。计划已启动,但没有计划时间。 – ansib