Jenkins-仅在具有2个以上执行者的节点上运行作业

问题描述 投票:0回答:1

我们有许多从事父工作和多个子工作的多重工作。父级进行一些预处理,然后开始第一个子作业。示例:

  • 父母-签出git repos并准备代码
    • 构建代码
    • 单元测试
    • 上传到HockeyApp

由于父项在子作业运行的整个过程中都在运行,因此该过程从一个执行程序开始,然后在子作业开始时再执行一次。删除它,然后在下一次启动时将其备份。

我们有4个节点,每个节点上都有3-4个执行器。我们也没有网络驱动器,因此子作业必须与父作业留在同一执行程序上,以避免在作业之间传递整个工作空间。

问题是,如果一项作业正在运行并且有两个执行程序,然后另一个作业开始,然后又是另一个执行程序,那么它们很可能全部都落在同一个节点上,并且发生以下类似情况:

节点1

  • 执行者1-父母1
  • 执行者2-儿童1
  • 执行者3-Parent2
  • 执行者4-Parent3

现在Parent2和Parent3只是围坐在旁边等待免费的执行者。最终,Parent1上的Child工作结束,然后2 r 3抓住执行者,所有人都为此而战。

是否有办法告诉Jenkins仅在至少有2个执行者自由的节点上启动该父节点?我知道如果有人足够快地开始了足够的工作,我们仍然可能会遇到人为问题,但这将大大减少它的机会。

jenkins jenkins-plugins
1个回答
1
投票

我认为您可以使用-https://wiki.jenkins.io/display/JENKINS/Heavy+Job+Plugin,并为每个步骤定义所需的免费执行程序数量。

© www.soinside.com 2019 - 2024. All rights reserved.