2

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

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

我努力了:

properties([disableConcurrentBuilds()])

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

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

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

复选框

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

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

4

1 回答 1

5

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

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

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

    //deploy steps/copy files here

  } // resource is unlocked.
}
于 2017-11-07T22:45:52.160 回答