Jua*_*que 2 jenkins jenkins-pipeline
我一直在寻找如何做到这一点一段时间,但我开始认为这是不可能的。与此类似的每个问题似乎都与限制某些节点或整个管道的运行更相关。
我们在 Jenkins 中有一个多分支管道,用于处理 PR 构建、分阶段测试和生产发布。这三个阶段中的每一个都通过when每个阶段中的选项进行处理,因为区别在于是否运行某些阶段。
虽然我希望能够对 PR 进行并发构建,因为我们可以打开许多需要更新的 PR,但我们希望限制登台测试的并发执行数量,因为我们需要一次执行一次登台运行才能能够以正确控制它。
在之前的版本中,我们有几个不同的管道来处理每个场景,但我们正在将其更新为只有一个多分支管道,并根据正在考虑的分支运行一个或另一个场景。在之前的版本中,我们使用了disableConcurrentBuilds()用于登台测试构建,并且它工作得很好,但是使用此选项,我们现在看到整个管道一次只运行一个构建,这使得完成 PR 构建变得非常慢。如果 PR 构建正在运行,由于不能并发运行,其余 PR 只会等待它完成,以便下一个 PR 可以开始运行。
有没有一种方法可以限制某些分支或每个分支的并发构建数量?这将允许我们仅对运行暂存测试的分支禁用此功能,同时仍然能够对打开的 PR 同时运行。
谢谢!
小智 7
Jenkins UI 不允许您在每个分支的基础上指定这一点,但如果您通过 jenkinsfile 配置作业,这是可能的
if(env.BRANCH_NAME.startsWith("develop")){
properties([disableConcurrentBuilds()])
} else{
properties([])
}
Run Code Online (Sandbox Code Playgroud)
如果这对您来说太粗略,因为您不希望多个分支同时到达测试或部署阶段,您可以使用锁和里程碑来尽可能允许并发,但一次只允许一个管道通过给定阶段
| 归档时间: |
|
| 查看次数: |
2212 次 |
| 最近记录: |