Jenkins GitHub插件反向分支

时间:2013-05-01 18:05:23

标签: git github jenkins jenkins-plugins

我在插件页面上有一个问题,但这似乎是Jenkins支持的一个更活跃的地方。

当一个更改被推送到任何分支时,作业将运行,并合并到开发分支,但大约20秒后,作业将注意到合并开发并再次触发作业。这不应该发生,因为开发是在分支建立(反向选择stragety)。当它推送到主控或发布的更改时也会发生这种情况,这也应该被排除在外。如果存在合并失败,则作业将启动永不停止的循环,尝试合并分支,直到手动解决冲突。

我还尝试将特定用户排除在触发构建之外,也没有效果。

我开始假设Github插件不尊重选择策略或其他git插件选项。

希望以下信息能够帮助我解决这个问题。

GitHub Plugin                => 1.5
GitHub API Plugin            => 1.40
GitHub Pull Request Builder  => 1.7
GitHub Authentication Plugin => 0.13.1
Jenkins GIT Plugin           => 1.3.0
Jenkins GIT client Plugin    => 1.0.5

构建中有趣的配置选项

要建立的分支

master,**master,release,**release,develop,**develop

排除用户

jenkins
ConvergintJenkins

合并选项

✓ Merge before build
Branch to merge to
    develop

禁用子模块处理     ✓

选择策略

Inverse

构建触发器

✓ Build when a change is pushed to github
✓ Poll SCM

Git Polling Log

Polling has not run yet.

Github Hook Log

Started on Apr 30, 2013 3:53:14 PM
Using strategy: Inverse
[poll] Last Built Revision: Revision bde1981da849dbfb2fd93aac4de05fd5a832043b (origin/ach)
Fetching changes from the remote Git repositories
Fetching upstream changes from origin
Polling for changes in
Seen branch in repository origin/develop
Seen branch in repository origin/feature-228
Seen branch in repository origin/feature-249
Seen branch in repository origin/master
Seen branch in repository origin/release
Done. Took 1.4 sec
Changes found

1 个答案:

答案 0 :(得分:6)

看起来你在这里有两个问题。

  1. 正在构建您不想构建的分支。
  2. 您会看到一些时髦的合并行为(可能是上述观点的结果)。
  3. 我认为你的诊断是正确的 - I am beginning to assume that the Github plugin does not respect the choosing strategy or the other git plugin options

    我过去也遇到过各种GitHub插件的问题。他们有一些很好的配置选项,可以做一些聪明的事情,但最终可能有点不稳定。我坚信在CI管道中绝对不应该存在剥落的地方(因为它会导致对它缺乏信任)。

    在我看来,如果你把一切都归结为基础,你就不会出错。使用Jenkins Git插件并像处理任何Git存储库一样处理GitHub。设置SSH或类似的(useful help article here)和一个不错的轮询间隔,你不应该遇到任何问题!

    我已经以这种方式为我的组织设置了数百个Jenkins工作,这些工作使用私有GitHub存储库。希望这会有所帮助。