【问题标题】:Multiple concurrent builds of the same project in JenkinsJenkins 中同一项目的多个并发构建
【发布时间】:2016-06-20 23:12:33
【问题描述】:

在我的团队中,我们有一个项目想要进行持续集成式测试。我们的构建大约需要 2 个小时,由“Poll SCM”触发器触发(使用 Perforce 作为服务器),我们有两个构建节点。

目前,如果有人签入更改,一个构建节点将立即启动,但如果签入另一个更改,另一个节点将不会启动,因为它正在等待前一个作业完成。但是,我希望另一个构建节点尽快使用更新的签入开始构建,这样我们就可以最大限度地增加正在发生的连续测试的数量(这样,如果一个构建失败,我们迟早会知道)。

是否有任何简单的方法来配置 Jenkins 作业(针对 Perforce 服务器使用 Poll SCM)以在作业的另一个实例已经运行时不阻塞?

不幸的是,由于项目的性质,不可能简单地将项目分解为多个构建作业,这些作业通过多个从属流水线传输(尽管我想将其更改为以这种方式工作)。

【问题讨论】:

  • 您是否尝试过 Jenkins 配置中的“必要时执行并发构建”选项?
  • @tkosinski 我没有,因为这听起来不像我想要实现的目标。 :) 我会试试的,谢谢。
  • @tkosinski 好的,阅读文档听起来这正是我想要的。似乎该选项应该称为“如果可能”,而不是“如果必要”。我也很困惑,因为出于某种原因,它似乎是 YouTrack 插件设置的一部分。随意将其重新发布为答案,以便我接受!
  • 如果您的从节点有不同的标签,那么只需将它们包含在Restrict where this build runs 部分中。它将挑选任何节点上的可用执行器。但是如果两个节点具有相同的能力,则给它们相同的标签并在此选项中添加它。
  • @Aditya 奴隶都在同一个标​​签上。问题是,例如build 1572 将等待 build 1571 完成,即使有可用的备用容量。 tkosinski 的回答解决了这个问题。

标签: jenkins continuous-integration perforce


【解决方案1】:

在 Jenkins 配置中使用“必要时执行并发构建”选项。

【讨论】:

    【解决方案2】:

    只是在这里注册以防有人需要它,在我使用的版本(Jenkins 2.249.3)中,我不得不取消选中子作业中称为多个的选项Do not allow concurrent builds父作业的次数。

    代码或多或少是这样的:

    stage('STAGE IN THE PARENT JOB') {
    
            def subParallelJobs = [:]
            LIST_OF_PARAMETERS = LIST_OF_PARAMETERS.split(",")
    
            for (int i = 0; i < LIST_OF_PARAMETERS.size(); i++) {
                    
                MY_PARAMETER_VALUE = LIST_OF_PARAMETERS[i].trim()
                MY_KEY_USING_THE_PARAMETER_TO_MAKE_IT_UNIQUE = "JOB_KEY_${MY_PARAMETER_VALUE}"
    
                def jobParams = [ string(name: 'MY_JOB_PARAMETER', value: MY_PARAMETER_VALUE) ]
                subParallelJobs.put("MY_KEY_USING_THE_PARAMETER_TO_MAKE_IT_UNIQUE", {build (job: "MY_CHILD_JOB", parameters: jobParams)})  
            }
    
            parallel(subParallelJobs)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-10-27
      • 2020-09-09
      • 1970-01-01
      • 2014-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多