Jenkins多分支流水线缺少一个分支。

14

我有一个Jenkins系统,它运行我们公司的构建任务。我们运行多分支管道。昨天,其中一个构建神秘地从构建中删除了“devel”分支。

我查看了该分支的拉取请求,但在此分支删除发生的时间范围内,未发现任何与Jenkins文件相关的影响。

我查看了Jenkins系统日志,但没有看到任何错误。这是扫描仓库日志中相关部分的副本:

Examining Bo**a/pro-***-ter

  Checking branches...

  Getting remote branches...

    Checking branch devel

  Getting remote pull requests...

    Checking branch master
      ‘Jenkinsfile’ found
    Met criteria

我已验证devel分支拥有Jenkinsfile文件,且该文件有效。

我无法解决这个问题。有任何建议将会很棒。

一些插件信息:

  • github 1.28.0
  • branch 2.0.11
  • docker-common 1.13
  • docker-pipeline 1.17
  • git 3.6.0
  • git client 2.7.0
  • git server 1.7
  • SCM API 2.2.3

Jenkins版本为2.73.2


你有检查配置吗?也许有人修改了Behaviors并忽略了devel分支。 - rohit thomas
1
修改行为是什么意思? - Mark Russell
在MultiJob下,有一个配置选项,您通常会在其中提及GitHub/SVN连接以及分支的行为/发现。 - rohit thomas
同样的问题在这里。在满足条件之后,日志显示检测到不支持的子项 repo » develop,正在跳过- 你已经想出如何解决这个问题了吗? - cornr
FWIW: JENKINS-55220 - Raphael
显示剩余2条评论
4个回答

14

使用 Blue Ocean(BitBucket Server 插件)时,我在 BitBucket Server 和 Jenkins 中遇到了同样的问题。分支在 Jenkins 中无法创建。我注意到分支提交和拉取请求(PR)已经有了成功的构建。如果 Jenkins 检测到 PR 对应一个分支,它就不会在 Jenkins 上创建该分支。一旦我从 BitBucket Server 中删除了拉取请求,Jenkins 就注册了该分支并出现在了 Jenkins 上。如果分支出现但没有构建,并引用了拉取请求 Jenkins 作业,则更好!


4
当一个从developmaster的Pull Request被打开时,Jenkins上的develop分支突然消失了,这特别令人困惑和恼火。可以在任务设置中更改此行为。 - Raphael
1
发现分支 > 所有分支(而不是排除也作为PR文件的分支) - funkybro

2

非常抱歉回复晚了: 我对Jenkins中的所有插件进行了升级,升级到了最新版本。 这解决了我的问题。


类似的方法对我也起作用了。扫描日志中没有错误或有价值的信息。 - coding_idiot

0

我认为我们可能找到了一个答案(或问题的根源)。 在我们的情况下,我们每天自动重启Jenkins,但在关闭或启动过程中分支会丢失。

在让Jenkins一直运行后,缺失的分支数量显著减少了。


0

检测到不支持的子项 repo » develop,跳过。 在我的情况下,我只需通过单击扫描分支日志页面上的链接删除 develop 流水线并重新扫描,所有问题都解决了。 似乎在执行扫描时,它可能指向 Git 中的一个过时哈希,从而防止 Jenkins 作业正确扫描。


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