我正在考虑在Jenkins中将并发构建的数量限制在特定数量,利用多分支管道工作流,但在Docs或Google中还没有找到任何好的方法来做到这一点。
一些文档说这可以在Jenkinsfile的stage
步骤中使用并发来完成,但我也read elsewhere认为这是一种不推荐使用的方法。
看起来最近有something released用于通过Job Properties
限制并发性,但我找不到它的文档,并且我在遵循代码时遇到了问题。我发现的唯一一件事是PR显示以下内容:
properties([concurrentBuilds(false)])
但我很难让它工作起来。
有没有人知道或有一个很好的例子来说明如何限制给定的多分支项目的并发构建数量?也许是一个Jenkinsfile片段,它展示了如何限制或限制多分支并发构建的数量?
5条答案
按热度按时间h5qlskok1#
找到了我要找的东西。您可以使用
Jenkinsfile
中的以下块限制并发构建。使用声明性语法也可以实现同样的目的:
ie3xauqp2#
使用
Lockable Resources
插件(GitHub)可以限制并发构建或阶段。我总是使用这种机制来确保不会同时执行任何发布/发布步骤,而可以同时构建正常的阶段。czq61nw13#
正如@VadminKotov指出的,也可以禁用使用Jenkins声明性管道的并发构建:
disableConcurrentBuilds
不允许并行执行管道。可用于防止同时访问共享资源等。例如:
options { disableConcurrentBuilds() }
yqyhoc1h4#
谢谢Jazzschmidt,我希望轻松锁定所有阶段,这对我很有效(source)
lhcgjxsq5#
我也得到了多分支锁定的解决方案,使用可解锁的资源插件,这里的共享库是:
Jenkins文件:
MyLockablePipeline.groovy:
要锁定所有分支,只需在myLockablePipeline.groovy中执行以下操作: