当前位置: 首页 > 知识库问答 >
问题:

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

柯书
2023-03-14

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

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

我尝试过:

properties([disableConcurrentBuilds()])

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

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

“必要时执行并发生成”

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

是否有其他配置来实现这一点,或者是通过设计实现的?

共有1个答案

百里俭
2023-03-14

在上述情况下,我将使用可锁定的资源。

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

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

    //deploy steps/copy files here

  } // resource is unlocked.
}
 类似资料:
  • 有人知道如何使用跨分支的多分支作业中设置的声明性管道来限制并发构建吗? 每当我们为某个阶段设置代理时,就会分配一个新的执行者。这会导致死锁,例如,当您为尽可能多的分支同时触发生成时,您有执行者。不设置代理会导致阶段随机选择执行者,这是不可接受的,因为某些阶段需要在某些代理上运行。。。 经典的方法不起作用: Throttle并发构建插件不适用于多分支 设置属性([disableConcurrentB

  • 问题内容: 我正在利用多分支管道工作流,在Jenkins中将并发构建的数量限制为特定数量,但是在docs或google中找不到任何好的方法。 一些文档说这可以在Jenkinsfile步骤中使用并发来完成,但是我在其他地方也读过,这是不推荐使用的方式。 似乎最近发布了一些用于限制并发通过的东西,但是我找不到它的文档,并且在遵循代码时遇到了麻烦。我唯一发现的PR显示以下内容: 但是我很难让它工作。 是

  • 我正在考虑在Jenkins中将并发构建的数量限制在一个特定的数量,利用多分支管道工作流,但在docs或google中还没有找到任何好的方法来做到这一点。 一些文档说这可以在Jenkinsfile的步骤中使用并发来完成,但我在其他地方也读到这是一种不推荐的方式。 看起来最近发布了一些通过作业属性限制并发性的东西,但我找不到相关文档,而且我在遵循代码方面遇到了问题。我发现的唯一一件公关展示了以下内容:

  • 对于一个新项目,我想使用Jenkins CI的新管道功能。我们的Git存储库中有几个分支,应该以同样的方式进行测试。它还应该自动跟踪和处理新的分支。因此,我创建了一个多分支管道作业。但它的配置有两个问题: 1) 为了被Jenkins标记为有效,分行需要一个“Jenkinsfile”。如果这不存在,詹金斯将忽略该分支。有没有办法标记与模式匹配的所有分支,而不需要在其中包含此文件? 2) 每个分支都应

  • 我正试图在詹金斯建立一个多分支管道项目。理想情况下,我希望在开发人员推出新代码后构建分支管道。例如,如果开发人员推送到“dev”分支,那么“dev”管道将自动生成。 我知道在“扫描多分支管道触发器”选项下,您可以设置Jenkins查找更改的频率,但我更希望是相反的方式,这意味着一旦分支中有新代码,Jenkins将构建管道。 我配置了我的Jenkinsfile,并在我的GitHub项目中设置了Web

  • 我正在努力使用Jenkins 2.1多分支管道,在这里,我从同一个git存储库构建了多个工件。一些工件是独立的,应该根据它们各自目录中的更改触发构建。有些是依赖的,应该由先前的步骤/构建触发。 存储库有一个控制整个管道的文件。Jenkins多分支管道作业会在所有更改时触发(无其他行为)。 我不知道如何在目录dirA发生变化时触发工件A的构建。 git回购协议中的Jenkins文件file:///r