依次触发具有不同参数的循环管线

时间:2018-11-21 08:45:54

标签: jenkins groovy jenkins-pipeline jenkins-shared-libraries

我阅读了有关为多个项目共享标准管道的信息 here

我有一个用例,我想通过循环中的多个数据运行管道模板。该管道应顺序运行。 这是代码:

//Jenkinsfile
    startPipeline()
def startPipeline(){
    for(i = 0 ; i < 3; i++)
        myPipeline(name : "Hello${i}")
}

我有一个管道模板,如下所示:

//vars/myPipeline.groovy
def call(Map pipelineParams){
    pipeline {
        agent any
        stages {
            stage('print Hello') {
                steps {  echo "${pipelineParams.name}"  }
            }
        }
    }
}

期望按顺序运行管道。 当我尝试这个我得到异常 下面的部分异常日志

java.lang.IllegalStateException: Only one pipeline { ... } block can be executed in a single run.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83)
    at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)

0 个答案:

没有答案