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

Jenkins:在每个节点上只为一个作业运行一个构建

沈曜灿
2023-03-14

我们有一个项目,其中我们有几个Jenkins作业:一种类型的作业运行交付(a),

一个只进行编译和单元测试的程序(B)

运行集成测试、静态代码分析等(C)的人。

我们在四个 Jenkins 节点(主节点三个从节点)上运行,我们的作业是声明性管道作业的混合,并在 Jenkins 作业中手动单击。

我们一次只想为每个节点运行一个集成测试构建。然而,我们希望运行尽可能多的交付(A)和代码质量(B)构建,因为有执行者。

到目前为止,Throttle并发构建(https://github.com/jenkinsci/throttle-concurrent-builds-plugin)插件已经满足了我们的需求。然而,这个插件不支持声明式管道构建,也没有更新。

可锁定资源插件(https://github.com/jenkinsci/lockable-resources-plugin)看起来很有希望,但我们还没有找到任何方法来用动态设置的资源名锁定整个构建。也就是说,当我们启动C构建时,我们希望它锁定“resource_{name of server}”。该插件允许在options指令中设置整个构建锁,但我们还没有弄清楚如何在那里计算环境变量。

任何建议将不胜感激!

共有1个答案

魏明亮
2023-03-14

因此,我们这边的解决方法是将管道脚本从声明式语法重写为脚本式语法。然后,throttle并发构建插件非常有魅力。

修复错误https://issues.jenkins-ci.org/browse/JENKINS-49173后,插件也将使用声明性管道。

 类似资料:
  • 目前,Jenkins 上有多个管道(A、B、C)和节点(X、Y、Z)。我们启用了 Throttle Concurrent Builds 插件,以确保管道中只有一个构建在单个节点上运行。 问题是,使用这种方法,来自不同管道的构建可能会发生冲突(例如,管道A可能已经在节点X上执行,我们不希望任何其他管道在节点X上执行,直到管道A完成)。TCB插件确保来自单个管道的多个构建不会在一个节点上运行,但它不会

  • 问题内容: 我想创建一个Jenkins作业来启动其他Jenkins作业。那将非常容易,因为Jenkins模板项目插件允许我们创建一个类型为“使用来自另一个项目的构建器”的构建步骤。但是,使我的情况更难的是,我必须在其他计算机上开始Jenkins的工作。有什么标准方法可以做到吗? 问题答案: 万一您只想触发Job的新版本,您有多种方法可以完成它 您可以使用远程访问API并触发请求以从源Job构建目标

  • 我的问题是我的pyspark作业没有并行运行。 代码和数据格式: 我的PySpark如下所示(显然是简化的): PySpark的全部要点是并行运行这个东西,显然不是这样。我在各种集群配置中运行了这些数据,最后一个配置是大量的,这时我注意到它是单一节点使用的。因此,为什么我的工作需要很长时间才能完成,而时间似乎与集群规模无关。 所有较小数据集的测试在我的本地机器和集群上都没有问题。我真的只是需要高档

  • 我有一个詹金斯服务器50多个工作。我添加了一个新的要求与特定用户执行。因此,我创建了slave节点(具有特定配置的相同主机),并将其限制为slave。但我以前的工作都开始用主+从了。所以他们开始失败了(因为我使用了另一个用户)。 问候。

  • 我试图在节点JS中的另一个cron作业中运行一个cron作业。外部cron作业在第1天只执行一次:内部cron作业在第2天执行1次:内部cron作业在第3天执行2次:内部cron作业执行3次 为什么它要多次执行,尽管我在cron作业中调用它一次

  • 如果我创建 cronjob 以每 2:30 运行一次命令会运行吗?(这意味着,我的 cron 将在每小时 90 分钟后运行一次。 命令如:30*/2***/command/xxx= 请帮帮忙?