Jenkins多分支工作对于某些分支失败

时间:2019-11-09 11:08:05

标签: jenkins head multibranch-pipeline

我有一个Jenkins Multi分支工作,可以从GitLab检出并构建代码。 直到最近它一直没有问题地工作,但是现在好主控的一些(但不是全部)分支无法建立。 大师总是没有问题地建立。 当我从GitLab中的仓库中或通过本地git checkout -b分支master并推回Gitlab,然后允许多分支作业选择新分支时,它无法构建它。 我从管道插件SCMBinder类得到消息:“无法确定[branch]的精确技巧修订;退回到不确定的结帐”。 当我在主服务器或从服务器上的工作区中执行git status时,磁头已分离。 当我在本地git克隆代码并检查分支时,一切都很好,并且头部已正确连接。 另外,当我在Jenkins中使用问题分支创建一个简单的管道作业时,它可以正常运行,并且对工作区的检查显示已连接头部。 我已经升级了Jenkins和插件,但这没有帮助。

令人困惑的是,我还有其他一些分支,它们是从同一主节点创建的,并且在同一多分支管道作业中构建得很好。 另外,如果我分支一个好的分支,那么在多分支管道中也会遇到相同的问题。

谁能建议出什么问题了?

3 个答案:

答案 0 :(得分:3)

在Jenkins多分支项目中,我也面临类似的问题。

当我单击左侧菜单中的“立即扫描多分支管道”选项时,问题已解决。

希望它可能对某些人有帮助。

答案 1 :(得分:0)

我找到了答案,所以在这里回答是为了帮助别人,并防止任何人浪费时间在上面。

这基本上是由linux / windows互操作性问题/分支命名中使用大小写的差异引起的,这转变为文件夹命名问题,因为Windows并不关心大小写,但GIT确实如此。

简单地说,我之前为问题仓库创建的第一个分支是我使用前缀的,因此将其称为“ Prefix”,并使用大写字母“ P”。 将这些分支拉入多分支管道中,然后建立。 然后,我创建了一个前缀为“ prefix”和小写字母“ p”的分支。该分支无法在多分支管道中建立。

我们知道Windows并不关心大小写,因此不会在.git中为“前缀”创建新的文件夹结构,因为它认为它已经有了一个称为“前缀”的文件夹。 适当的HEAD和提交信息将放在“前缀”下的原始文件结构下。 GIT但是,当它尝试结帐时,代码无法找到以“ prefix”开头的分支的开头/提交信息,因为它正在.git中查找“ prefix”而不是“ Prefix”下的提交/标题详细信息导致头部脱落。

以后,我将开始为分支命名强制执行一些语法规则,以免再次发生这种情况。

答案 2 :(得分:0)

我遇到这个问题显然是因为 Jenkins 升级。我不得不(重新)创建配置的“分支源”部分来修复它。