Jenkins Git插件和分支

7
我在Jenkins中建立了一个作业,用于构建我所有的特性分支(feature/**)。使用Build Name Setter插件很好地实现了使用Jenkins分支设置器名称插件标识不同的构建。
我的问题是,如果同时更改多个分支,它会将相同的作业排队多次吗?还是只会构建找到的第一个分支(或最后一个分支),然后下一个分支将在下一次轮询时被拾取,以此类推?或者它只会构建最后更改的分支并忽略所有其他分支?我无法解决这个问题,并没有清晰地记录。

“build name plugin”是什么?它的文档已经回答了你的问题,不是吗? - fge
我对此一无所知,但通过谷歌搜索,我认为这是 Jenkins 插件。它看起来只是重命名构建,因此问题应该是 Jenkins 如何触发构建,并且很可能与插件无关。 - Cascabel
正确,Jenkins的'git-plugin'是如何工作的。'Build name setter plugin'只是按分支命名构建,以便我知道它正在构建哪个分支。 - Marathiboy
我已经编辑了你的问题,包含足够的信息。(如果一开始就提供信息,你会得到更有帮助的答案 - 你从未提到 Jenkins。)据我所知,分支名称插件可能是无关紧要的。至于答案,如果 Jenkins 是理智的话,当它看到应该构建的多个项目时,它会构建所有这些项目(可能在队列中)。你不能试试吗? - Cascabel
谢谢,我期望你所写的内容。然而当我尝试时,它只构建了最后更改的分支。我认为这很奇怪,所以想要确认一下。再次感谢。 - Marathiboy
啊,我明白了。你也可以编辑自己的问题,以添加更多类似的信息。但你可能运气不佳;我找到了这个链接:https://issues.jenkins-ci.org/browse/JENKINS-11337 这个插件似乎有很多未解决的、重要的问题。 - Cascabel
2个回答

2

或者,您可以尝试 按分支执行作业 的方法。这种方法有其自身的问题,取决于您正在处理的分支数量,您可能需要工具来帮助您管理此过程:


这并没有回答原问题。这些替代方案是有用的信息,但并不是所要求的。在我的情况下(也许OP的情况也是如此),我明确不想要“每个分支一个任务”,因为任务的增加会带来混乱(即使进行自动化),而且我的团队与大公司的其他团队共享Jenkins。 - Allan

1

这是 Jenkins Git 插件已知的问题,已经存在一段时间了。即使特定分支发生更改,它也只会构建主分支。

旧版本曾经可以正常工作,因此如果您安装 1.1.xxx(1.359 是最后一个已知的工作版本)之前的版本,则可能可以解决此问题。

如 Jefromi 先前所述,您可以在此处查看详细信息:https://issues.jenkins-ci.org/browse/JENKINS-11337,如果需要,可以为该问题投票。


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