Jenkins GitHub插件反向分支

Roc*_*r04 6 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
Run Code Online (Sandbox Code Playgroud)

构建中有趣的配置选项

要建立的分支机构

master,**master,release,**release,develop,**develop
Run Code Online (Sandbox Code Playgroud)

排除的用户

jenkins
ConvergintJenkins
Run Code Online (Sandbox Code Playgroud)

合并选项

? Merge before build
Branch to merge to
    develop
Run Code Online (Sandbox Code Playgroud)

禁用子模块处理✓

选择策略

Inverse
Run Code Online (Sandbox Code Playgroud)

构建触发器

? Build when a change is pushed to github
? Poll SCM
Run Code Online (Sandbox Code Playgroud)

Git Polling Log

Polling has not run yet.
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

ben*_*ape 6

看起来你在这里遇到了两个问题.

  1. 正在构建您不想构建的分支.
  2. 你会看到一些时髦的合并行为(可能是上述观点的结果).

我认为你的诊断是正确的 - 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或类似的(这里有用的帮助文章)和一个体面的轮询间隔,你不应该遇到任何问题!

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