在詹金斯阶段之间传递变量

问题描述 投票:0回答:1

我在jenkins工作,我有一个jenkins文件。这是一个示例:

environment {
  var1 = "city1"
  var2 = "city2"
}
stages{
  stage('stage 1 - define a var and load a script') {
    steps {
      script {
        var = load jenkins/methods.groovy
        env.list = var.mymethod(var1)
      {
    }
  }
  stage('stage 2 - use defined stuff in stage1') {
    steps {
      script {
        var.mymethod2(env.list[1], env.list[0])
      {

    }
  }
}

在第1阶段,我加载methods.groovy并使用mymethod(来自methods.groovy)将列表(2个值)放入env.list中。 在第 2 阶段,我想使用 env.list 值 ([0],[1]) 并将它们加载到另一个方法 (mymethod2) 中。 不知道为什么,但这些值没有从阶段 1 传递到阶段 2。 我可以得到一些帮助吗?

jenkins jenkins-pipeline jenkins-groovy
1个回答
0
投票

在这种情况下,通常会定义“全局”变量。 例如:

def myVar
def myList = []

pipeline {
  stages {
    stage('stage 1'){
      steps {
        script {
          myVar = 'Hello'
          myList = myLib.myMethod
        }
      }
    }
    stage('stage 2'){
      steps {
        script {
          echo "myVar --> ${myvar}"
          echo "myList --> ${myList}"
        }
      }
    }
  }
}

不确定这是否是正确的方法,也不是最好的方法,但它有效。

© www.soinside.com 2019 - 2024. All rights reserved.