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

如何防止同一类型的两个管道jenkins作业在同一节点上并行运行?

庄飞
2023-03-14

我不想允许相同类型(相同存储库)的两个作业在同一节点上并行运行。

如何在Jenkinsfile中使用groovy做到这一点?

共有3个答案

柯乐池
2023-03-14

在声明性管道语法中使用选项块的示例:

pipeline {

  options { 
    disableConcurrentBuilds() 
  }

...
}
萧展鹏
2023-03-14

您在disableConcurrentBuilds属性获得:

properties properties: [
  ...
  disableConcurrentBuilds(),
  ...
]

然后工作会等大一点的先完成

东郭弘
2023-03-14

中提供的答案https://stackoverflow.com/a/43963315/6839445已弃用。

当前禁用并发生成的方法是设置选项:

options { disableConcurrentBuilds() }

详细说明可在这里:https://jenkins.io/doc/book/pipeline/syntax/#options

 类似资料:
  • 问题内容: 我有几个使用共享资源(数据库)的作业,有时这会在(碰巧)同时触发作业的(罕见)事件中导致构建失败。 例如,给定作业A到E,是否有任何方法可以指定A和C 绝不能同时运行 ? 除上述资源外,构建彼此独立(例如,不存在上游/下游关系)。 “强力”方式将执行者的数量限制为一个,但是如果大多数作业可以很好地同时执行并且在构建服务器上不缺少计算资源,那么显然这不是理想的选择。 问题答案: 当前有两

  • 问题内容: 我有一大堆具有相同标签的节点。我希望能够在Jenkins中运行一个作业,该作业在具有相同标签的 所有 节点上执行并同时执行。 我看到了在詹金斯中使用矩阵配置选项的建议,但我只能想到一个轴(标签组)。当我尝试运行该作业时,似乎它只执行一次而不是300次(该标签组中的每个节点1次)。 我的另一条轴应该是什么?还是…有一些插件可以做到这一点?我曾经尝试过NodeLabel参数插件,然后选择“

  • 问题内容: 目标 在同一节点上运行声明性Jenkins管道的多个阶段。 安装程序 这只是显示问题的一个最小示例。有2个Windows节点“ windows-slave1”和“ windows-slave2”,均标有“ windows”标签。 注意:我真正的Jenkinsfile无法使用全局代理,因为存在需要在不同节点上运行的阶段组(例如Windows与Linux)。 预期行为 Jenkins根据标

  • 目标 在同一节点上运行声明性Jenkins管道的多个阶段。 设置 这只是说明问题的一个最小示例。有两个Windows节点“Windows-slave1”和“Windows-slave2”都标有“Windows”标签。 注意:我的real Jenkins文件不能使用全局代理,因为需要在不同的节点(例如Windows和Linux)上运行多组阶段。 预期行为 Jenkins基于标签选择阶段1中的一个节点

  • 问题内容: 我有两个共享数据库的Jenkins项目。它们不能同时运行。严格来说,除了非并发之外,它们之间没有特殊的依赖关系,但是目前,我通过运行另一个的“下游”来部分管理此约束。这在大多数时间都有效,但并非总是如此。如果在第二个运行时发生源代码管理更改,则第一个将再次启动,并且它们将同时运行,并且很可能都失败了。 这与如何防止某些Jenkins作业同时运行类似但不完全相同。区别在于,我没有“线程数

  • 我们有一个项目,其中我们有几个Jenkins作业:一种类型的作业运行交付(a), 一个只进行编译和单元测试的程序(B) 和 运行集成测试、静态代码分析等(C)的人。 我们在四个 Jenkins 节点(主节点三个从节点)上运行,我们的作业是声明性管道作业的混合,并在 Jenkins 作业中手动单击。 我们一次只想为每个节点运行一个集成测试构建。然而,我们希望运行尽可能多的交付(A)和代码质量(B)构