将变量传递给詹金斯管道中的顺序阶段

时间:2020-06-16 18:24:54

标签: jenkins groovy jenkins-pipeline

我有一个Jenkins顺序分段管道,如下所示。我想将地图(类似于def return_map = [:])从第一个顺序阶段传递到另一个顺序阶段(1到2) enter image description here 这是我正在使用的代码。

def stepsToRun = [:]

pipeline {
    agent none

    stages {
        stage ("Prepare Stages"){
            steps {
                script {
                    build_script = load '/home/ubuntu/Documents/build-image.groovy'
                    for (int i = 1; i < 5; i++) {
                        stepsToRun["Step${i}"] = prepareStage("Step${i}")
                    }   
                    parallel stepsToRun
                }
            }
        }
    }
}

def prepareStage(def name) {
    return {
        stage (name) {
            stage("1") {
               def return_map = build_script.image_build_handler(var1,var2,var3)
            }
            stage("2") {
                build_script.push_images(return_map)
            }
        }
    }
}

我想将return_map传递到我这样尝试的下一个阶段(stage2)。但这没用。

1 个答案:

答案 0 :(得分:0)

您可以这样尝试吗?

def prepareStage(def name) {
return {
    stage (name) {
        stage("1") {
           def return_var = build_script.image_build_handler(var1,var2,var3)
           env.return_var = return_var
        }
        stage("2") {
            build_script.push_images(env.return_var)
        }
    }
  }
}