首页 文章

尽管“不要在提交通知上触发构建”,但Jenkins构建被触发

提问于
浏览
1

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

我不知道这是一个错误,还是我错过了什么 .

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

1 回答

  • 1

    在与Jenkins邮件列表进行一些交流之后,我现在更好地了解事情是如何运作的,所以这里是我必须要做的事情以防其他人需要它:

    • 创建一个git hook来通知Jenkins已经提交/推送了更改:最后我们在远程创建了一个post-receive钩子

    • 启用作业轮询,但将计划保留为空

    • 在Pipeline部分中,将其配置为从git repo中提取groovy脚本(在我的示例中为repoB)但不添加行为:"Don't trigger a build on commit notifications"

    • 确保在脚本中签出git存储库(在我的示例中为repoA)时启用了轮询:默认情况下,如果未指定它,则启用它

    据我所知,选项“不要触发提交通知的构建”是针对来自挂钩而不是来自作业轮询计划的通知,正如我首先想到的那样 .

相关问题