groovy 在jenkins管道脚本中使用if else从函数返回多个参数

ux6nzvsh  于 2022-11-21  发布在  Jenkins
关注(0)|答案(1)|浏览(230)

我在Jenkins pipeline脚本中使用if else返回函数的多个参数时遇到了错误。下面是我的测试管道。

def envi, host

def build_func(envi, host){
  if (env.ENVIRONMENT == 'dev') {
    envi = 'dev'
    host = 'devhost'
  }
  else if(env.ENVIRONMENT == 'prod') {
    envi = 'prod'
    host = 'prodhost'
  }
  return [envi, host]
}

pipeline {
agent any
environment {
  def (envir,hostname) = build_func(env,host)
}

stages {
  stage('Hello') {
    steps {
      echo "Hello World\n${envir}\n${env.ENVIRONMENT}"
    }
  }
 }
}

当我构建这个时,得到下面的错误,
异常错误:启动失败:工作流脚本:18:第18行第7列需要字符串文字。def(环境,主机名)= build_func(环境,主机)

mftmpeh8

mftmpeh81#

我不认为你可以在environment块中返回多个值并创建这样的环境变量。

environment {
  envir = "${build_func(env,host)[0]}"
  hostname = "${build_func(env,host)[1]}"
}

相关问题