多分支 Jenkins 管道 - 将分支限制为 1

bp2*_*010 2 jenkins-pipeline multibranch-pipeline

是否可以将 Multibranch 管道限制为一次仅构建一个分支?

我有一个管道,其中包含检出、构建、测试和部署的步骤。部署阶段在特定机器上执行一些无法与其他分支作业并行完成的文件的复制/执行。

我试过了:

properties([disableConcurrentBuilds()])
Run Code Online (Sandbox Code Playgroud)

但这仅限制了分支的并发性,因此仍然会并行运行多个分支。

此外,在常规的非流水线 Jenkins 作业中,有一个选项复选框:

“如有必要,执行并发构建”

复选框

但这在多分支配置中也不可用。

是否有其他配置可以实现这一点还是设计使然?

Ram*_*ath 5

在上述情况下,我会使用可锁定资源

您可以并行执行所有分支。但是,在任何给定时间点,只有一个分支会执行锁定步骤。

stage("locked stage") {
  lock("deploy") {

    //deploy steps/copy files here

  } // resource is unlocked.
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,您还可以通过在选项指令中包含锁来锁定整个构建。`pipeline { options { lock resource: 'test-dbs' } stage {...} }` (6认同)