目前我有以下问题。
我编写了一个 Jenkinsfile 来在管道中构建我的存储库。
每个存储库在多分支管道中都有自己的管道。每当我推送存储库时,管道就会开始工作。
对于建筑物,我有一个带有两个节点的代理。
当多分支管道运行时,多分支管道使用一个节点来执行单个管道,第二个节点由当前正在执行的管道使用来运行单个作业。
当两条管道同时运行时,两条管道都使用一个节点。但现在的问题是两个管道都无法启动任何作业,因为所有节点都被占用。此时我遇到了死锁,因为两个管道都在等待空闲节点来完成其作业。
我尝试设置“disableConcurrentBuilds()”,但这只会阻止同名的管道。多分支管道中不同名称的管道可以同时运行。
第二次尝试是使用 Jenkinsfile 中的此代码设置 Build Blocker Plugin。
properties([
[$class: 'BuildBlockerProperty',
blockLevel: 'GLOBAL',
blockingJobs: '*pipeline_Test*',
scanQueueFor: 'ALL',
useBuildBlocker: true],
disableConcurrentBuilds()
])
但后来我收到此错误消息。
WorkflowScript:30:选项类型“属性”无效。有效选项
类型:[buildDiscarder、catchError、checkoutToSubdirectory、
禁用并发构建、禁用恢复、耐久性提示、锁定、
newContainerPerStage、overrideIndexTriggers、重试、脚本、
SkipDefaultCheckout、skipStagesAfterUnstable、超时、waitUntil、
withContext, withCredentials, withEnv, ws] @ 第 30 行,第 4 列
如何在 Jenkinsfile 中为整个管道设置 BuildBlockerProperty?
在管道运行期间,是否有其他方法可以阻止所有其他管道?
谢谢你的帮助。