我在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。 我可以得到一些帮助吗?
在这种情况下,通常会定义“全局”变量。 例如:
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}"
}
}
}
}
}
不确定这是否是正确的方法,也不是最好的方法,但它有效。