【问题标题】:Multibranch Jenkins Pipeline - Limit branches to build to 1Multibranch Jenkins Pipeline - 将构建的分支限制为 1
【发布时间】:2017-11-07 16:19:19
【问题描述】:

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

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

我试过了:

properties([disableConcurrentBuilds()])

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

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

“必要时执行并发构建”

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

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

【问题讨论】:

    标签: jenkins-pipeline multibranch-pipeline


    【解决方案1】:

    在上述情况下,我会使用lockable resources

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

    stage("locked stage") {
      lock("deploy") {
    
        //deploy steps/copy files here
    
      } // resource is unlocked.
    }
    

    【讨论】:

    • 请注意,您还可以通过在选项指令中包含锁定来锁定整个构建。pipeline { options { lock resource: 'test-dbs' } stages {...} }
    • 如何使用这种语法来锁定管道中使用的多个代理?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 2019-05-26
    相关资源
    最近更新 更多