Jenkins git承诺为特定的分支触发器构建其他分支的作业

时间:2015-08-07 21:33:26

标签: git github jenkins

我们有一个内部企业Github repo,我有多个功能分支。 我正面临着触发特定分支上的构建的问题。 我为每个功能分支配置了作业。一个功能分支有一个jenkins工作。 第一次提交代码时,它还会触发具有其他分支的作业的构建。

重现问题的步骤:

1.我们有一个企业内部Github。对于我的回购,我已经为github设置了webhook,如下所示

 Settings -> Webhooks & Services -> Services
 Select Jenkins (GitHub plugin) 
 Jenkins Hook Url: http://************/jenkins/github-webhook/

2.对于github repo中的3个分支:branch1,branch2,branch3,我在jenkins中创建了三个作业:Job1,Job2,Job3,SCM配置如下

Source Code Management:
Repo URL: git@********/********.git
Branches to Build: refs/heads/BRANCH_NAME

Build Trigger: Build when a change is pushed to GitHub

3.On代码到我的分支:branch1。它会触发jenkins中的所有3个作业:Job1,Job2,Job3。    注意:这是第一次触发作业。

4.On代码第二次提交分支:branch1。它只触发jenkins中的Job1。

看起来第一次所有工作都要为回购执行,而不管分支。

我的jenkins设置细节:Jenkins版本:1.565.1,GitHub插件:1.9.1

感谢您解决此问题的任何帮助/指导。

仅供参考:我尝试了http://kohsuke.org/2011/12/01/polling-must-die-triggering-jenkins-builds-from-a-git-hook/

列出的步骤

1 个答案:

答案 0 :(得分:0)

使用follow命令创建一个脚本(假设你的github SO是linux)

curl http://yourserver/jenkins/git/notifyCommit?url=<URL of the Git repository>

将此脚本放在./git/hooks

在你的詹金斯工作岗位上改变

发件人 &#34;将更改推送到GitHub&#34;

时构建

&#34;民意调查SCM&#34;

不要在民意调查SCM中创建任何时间表