首页 > 解决方案 > Jenkins Pipeline - 在循环内按顺序触发作业

问题描述

我有一个 Jenkins 管道,我在其中触发具有不同参数的单个作业。参数的数量也可能会改变,这会改变作业需要被触发的次数。这就是为什么我有build job一个 for 循环。代码如下所示:

pipeline{

    stages{
        stage('Setup'){
            steps{
                script {
                    for (int i=0; i<list_one.size(); i++ ) {
                    def index_i = i
                        for (int j=0; j<list_two.size(); j++) {
                            def index_j = j
                            stage ("${list_one[i]} ${list_two[j]}") {
                                sh "echo 'index_i: ${index_i}'"
                                sh "echo 'index_j: ${index_j}'"
                                build job: 'Downstream Job', parameters: [
                                    string(name: 'some_param', value: "${list_one[index_i]}")]
                            }
                        }
                    }
                }
            }
        }
    }
}

当我运行这个管道时,它只在两个循环的第一次迭代中运行一次。但是,当我删除该build job行时,管道会针对列表中的所有值运行。我很困惑为什么会这样,并且希望在这件事上得到一些帮助。

标签: jenkinsgroovyjenkins-pipeline

解决方案



推荐阅读