一尘不染

Jenkins GitHub插件反向分支

jenkins

我在插件页面上有一个问题,但这似乎对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 has not run yet.

Github钩日志

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

阅读 253

收藏
2020-07-25

共1个答案

一尘不染

您似乎在这里遇到了两个问题。

  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或类似的工具(此处是有用的帮助文章),并设置适当的轮询间隔,您不应该遇到任何问题!

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

2020-07-25