gpt4 book ai didi

jenkins - 使用作业 DSL 禁用多分支管道作业的并发构建

转载 作者:行者123 更新时间:2023-12-05 07:11:40 25 4
gpt4 key购买 nike

我正在尝试使用作业 DSL 创建多分支管道作业,但我想禁用每个分支上的并发构建。我尝试了以下代码片段,但它没有用,“不允许并发构建”在新分支上仍未选中。

multibranchPipelineJob("${FOLDER_NAME}/${JOB_NAME}") {
branchSources {
git {
remote("https://gitlab.com/${REPO_PATH}")
credentialsId('gitlab_credentials')
includes('*')
}
}
configure {
def factory = it / factory(class: 'com.cloudbees.workflow.multibranch.CustomBranchProjectFactory')
factory << disableConcurrentBuilds()
}
orphanedItemStrategy {
discardOldItems {
numToKeep(1)
}
}
}

我也在配置闭包中尝试过这个:

factory << properties {
disableConcurrentBuilds()
}

但是这个导致抛出以下异常:

19:03:50 groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method groovy.util.Node#leftShift.
19:03:50 Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
19:03:50 [class groovy.util.Node]
19:03:50 [class java.lang.String]

最佳答案

我也有这个需求。我注意到在我的 jenkins 实例中,jobDSL api 文档表明多分支管道作业不支持 disableConcurrentBuilds() 属性。

我刚回到a related discussion I was having with @tknerr他在其中指出,通过 jobDSL 可以为多分支管道提供速率限制功能。

由于这个 Jenkins 错误,我的团队刚刚遇到 pollSCM 触发运行异常的问题,所以我在 jobDSL 中实现了这个问题,以使我们的工作对此更加稳健。像您一样,我只想像在管道中那样“禁用并发构建”,但由于速率限制似乎是目前可用于多分支管道的唯一解决方案,我尝试将其放入我们的 jobDSL 中:

  strategy {
defaultBranchPropertyStrategy {
props {
rateLimitBranchProperty {
count(2)
durationName("hour")
}
}
}
}

这当然是一个可怕的解决方法,因为它在需要知道构建需要多长时间的 jobDSL 中放置了一个令人讨厌的依赖项,但我愿意接受这种必须推送 disableConcurrentBuilds 的替代方法数百个分支上的 Jenkinsfile 选项。

它在实现目标方面也几乎没有效果,因为我们希望允许跨分支并发构建,但希望防止单个分支作业构建“太快”。

我们应该检查 Jenkins 中是否有为此(您的原始请求)的功能请求。

在我的 jenkins 实例(v2.222.3,Pipeline:multibranch v2.22)中,此处描述了将其应用于“所有分支”的设置:

https:// /plugin/job-dsl/api-viewer/index.html#path/multibranchPipelineJob-branchSources-branchSource-strategy-allBranchesSame-props-rateLimit

这里将它应用到特定的分支:

https:// /plugin/job-dsl/api-viewer/index.html#path/multibranchPipelineJob-branchSources-branchSource-strategy-namedBranchesDifferent-defaultProperties-rateLimit

编辑:还想链接到相关的 Jenkins 问题 here .

关于jenkins - 使用作业 DSL 禁用多分支管道作业的并发构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60709413/

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