首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据管道参数值并行运行多次作业

如何根据管道参数值并行运行多次作业
EN

Stack Overflow用户
提问于 2019-08-06 07:37:57
回答 1查看 930关注 0票数 0

我希望根据参数N,从管道"main_job“并行运行作业"main_pipeline”N次,但在脚本块中允许循环而不是在“并行”块中允许"for“循环的情况下,我无法绕过jenkins错误。

我尝试使用所有的混合脚本/并行/阶段块。

代码语言:javascript
复制
pipeline {
  agent any
  stages {
    stage("All jobs") {
      parallel {
        script {
          def numJobs = "${N}" as Integer
          for(def curJob=1; curJob<=numJobs; i++) {
            def param = "JOB-" + curJob
            script {
              build (job: "main_job",
                     parameters: [string(name:"PARAM", value:param)])
            }
          }
        }
      }
    }
  }
}

使用不同的脚本/阶段/并行组合,对于预期的块,我会得到不同的错误。错误的一个例子是:

代码语言:javascript
复制
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: xx: Expected a stage @ line xx, column xx.
               script {
               ^

WorkflowScript: xx: Expected one of "steps", "stages", or "parallel" for stage "All jobs" @ line xx, column xx.
           stage("All jobs") {
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-20 06:58:38

好的,我终于找到了我需要做的事情,基本上是通过尝试和错误来发现parallel可以作为一个函数被调用,方法是传递一个字典,其中包含所有要运行的作业的细节。

最终代码如下:

代码语言:javascript
复制
pipeline {
    agent any
    parameters {
        string(
            name: 'N',
            defaultValue:"2",
            description: "The number of jobs to run"
        )
    }
    stages {
    stage("All jobs") {
        steps {
        script {
          def numJobs = "${N}" as Integer
          def allJobs = [:]
          for(def curJob=1; curJob<=numJobs; curJob++) {
            def jobName = "JOB-" + curJob
            allJobs[jobName] =  {
              build (job: "main_job",
                    parameters:
                    [string(name:"PARAM", value:jobName)])
            }
          }
          parallel(allJobs)
        }
      }
    }
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57371105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档