我在插件页面上有一个问题,但这似乎 对Jenkins支持更加活跃。
将更改推送到任何分支后,该作业将运行并合并到 development分支中,但是大约20秒后,该作业将注意到合并到 development中并再次触发该作业。这不应该发生,因为开发 处于要建立的分支中(具有逆向选择策略)。 当更改推送到母版或发行版(也应排除在外)时,也会发生这种情况。 如果存在合并失败,那么作业将开始一个永无休止的循环,尝试 合并分支,直到手动解决冲突为止。
我也试图从触发构建中排除特定用户,也 没有任何效果。
我开始假设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
您似乎在这里遇到了两个问题。
您不想建立的分支正在建立。您正在看到一些时髦的合并行为(可能是由于上述几点)。 我认为您的诊断是正确的- 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或类似的工具( 此处是有用的帮助文章 ),并设置适当的轮询间隔,您不应该遇到任何问题!
我已经为 使用私有GitHub存储库的组织以这种方式设置了数百个Jenkins职位。希望这可以帮助。