Jenkins GitHub插件的反向分支

7

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

当对任何分支进行推送更改时,作业将运行并合并到develop分支中,但大约20秒后,作业将注意到合并到develop并再次触发作业。这不应该发生,因为develop在要构建的分支中(具有相反的选择策略)。当更改被推送到主分支或发布分支时,也会发生这种情况,这也应该被排除。如果存在合并失败,则作业将开始永远循环尝试合并分支,直到手动解决冲突。

我还尝试将特定用户从触发构建中排除,但也没有效果。

我开始认为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 Hook 日志

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个回答

8

看起来你有两个问题。

  1. 正在构建你不想构建的分支。
  2. 你正在看到一些奇怪的合并行为(可能是由于上述点的结果)。

我认为你的诊断是正确的 - 我开始认为Github插件不尊重选择策略或其他git插件选项

我以前也遇到过各种GitHub插件的问题。它们有一些不错的配置选项,可以做一些聪明的事情,但最终可能会有点不稳定。我坚信在CI管道中绝不能容忍任何不可靠的因素(因为这会导致对其的信任缺失)。

在我看来,如果你将一切都简化回基础知识,就不会出错。使用Jenkins Git插件,并将GitHub视为任何Git存储库一样处理。设置SSH或类似内容 (这里有一个有用的帮助文章) 和适当的轮询间隔,你就不会遇到任何问题!

我已经为我们组织设置了数百个这种方式的Jenkins作业,该组织使用私人GitHub存储库。希望这可以帮到你。


1
我在发布这个问题后不久将此工作移回标准的git插件,现在它似乎运行良好,没有合并循环,只合并我想要的分支,一切看起来都很顺利。感谢你让我知道我不是疯了。 - Rockstar04
很高兴听到这个好消息,我很高兴我们都得出了同样的结论,并且现在它对你起作用了! - ben.snape
还有关于反向策略无法工作的相关票据: JENKINS-22593: GitHub插件在打开反向构建策略时无法构建 - marc.guenther

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接