gpt4 book ai didi

jenkins - 仅针对特定分支限制 Jenkins 并发构建

转载 作者:行者123 更新时间:2023-12-01 23:42:55 25 4
gpt4 key购买 nike

我一直在寻找如何做到这一点,但我开始认为这是不可能的。每个与此类似的问题似乎都与限制某些节点运行或整个管道有关。

我们在 Jenkins 中有一个多分支管道,用于处理 PR 构建、暂存测试和生产发布。这三者中的每一个都通过每个阶段的 when 选项处理,因为区别在于是否运行某些阶段。

虽然我希望能够为 PR 进行并发构建,因为我们可以打开许多需要更新的内容,但我们希望限制暂存测试的并发执行数量,因为我们需要一次进行一次暂存运行能够正确控制它。

在以前的版本中,我们有几个不同的管道处理每个场景,但我们将其更新为只有一个多分支管道,并根据正在考虑的分支运行一个或另一个场景。在之前的版本中,我们使用 disableConcurrentBuilds() 进行暂存测试构建,它运行良好,但使用这个选项,我们现在看到整个管道一次只运行一个构建,这使得它非常慢完成 PR 构建。如果 PR 构建正在运行,由于不能并发运行,其余 PR 只是等待它完成,以便下一个可以开始运行。

有没有办法限制某些分支或每个分支的并发构建数量?这将允许我们仅对运行暂存测试的分支禁用此功能,同时仍然能够为打开的 PR 同时运行。

谢谢!

最佳答案

Jenkins UI 不允许您在每个分支的基础上指定它,但如果您通过 jenkinsfile 配置作业是可能的

if(env.BRANCH_NAME.startsWith("develop")){
properties([disableConcurrentBuilds()])
} else{
properties([])
}

如果这对您来说太粗糙,因为您不希望多个分支同时进入测试或部署阶段,您可以使用 locks and milestones在可能的情况下允许并发,但在给定阶段一次只允许一个管道

关于jenkins - 仅针对特定分支限制 Jenkins 并发构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64754119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com