我在插件页面上有一个问题,但这似乎是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
答案 0 :(得分:6)
看起来你在这里有两个问题。
我认为你的诊断是正确的 - 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存储库。希望这会有所帮助。