小编典典

如何在推送到 master 时使用 Git 触发器制作 Jenkins CI?

all

我正在尝试为使用 GitHub 的项目设置 Jenkins-ci。我已经使用适当的插件设置了 Jenkins。我希望 Jenkins 仅在项目中有人推送到
master 时才运行构建脚本。到目前为止,我已经能够设置它,以便在任何人推送到任何地方时都会触发构建,但这太宽泛了。我已经通过 Git
上的接收后服务挂钩完成了这项工作。

我已经阅读了 Jenkins wiki 和一些教程,但是缺少这个特定的细节……这可能与轮询有关吗?还是应该在 Git 端完成工作,以便 Git
仅在master更改时触发 Jenkins?


阅读 121

收藏
2022-06-21

共1个答案

小编典典

正如 gezzed 在他的评论中已经指出的那样,同时有一个很好的解决方案(在 Polling must die:triggering Jenkins
builds from a Git hook
中描述):

  • 将 Jenkins 作业的构建触发器设置为 Poll SCM ,但不要 指定 时间表。

  • 创建 GitHub 接收后触发器以通知 URL

    http://yourserver/jenkins/git/notifyCommit?url=<URL of the Git repository>?token=<get token from git to build remotely>
    
  • 这将触发轮询指定 Git 存储库的所有构建。

  • 然而,轮询实际上检查是否有任何东西被推送到使用的分支。

它完美地工作。

2022-06-21