Jenkins concat字符串和for循环索引具有env变量名称

时间:2018-10-07 16:56:36

标签: jenkins jenkins-pipeline

在我的Jenkins管道中,我使用有一个for循环的步骤。我的env变量是env.server1,env.server2。我喜欢基于索引传递环境变量并传递其参数来执行另一个Jenkins作业。

params.CLUSTER --> is a number 
            I have env.SERVER1 = x.x.x.x and env.SERVER2 = y.y.y.y, which i like to pass to build job as parameter.
            env.SERVER<for-loop-index>

            stage ('Running on EC2') {
            for (int i = 1; i <= "${params.CLUSTER}".toInteger(); i++) {
            branches["RebootNodes-Branch_${i}"] = { 
            build job: 'RebootNodes', parameters: [
            [$class: 'ExtendedChoiceParameterValue', name: 'server', value: env.SERVER${i}]
            ]                                   
            }
            }
            parallel branches
            } 

1 个答案:

答案 0 :(得分:0)

您可以访问环境变量,如下例所示:

node {
  withEnv(['VAR1=VAR1VALUE','VAR2=VAR2VALUE']) {
      for(int i=1; i<=2; i++)
      {
        println env["VAR$i"]
      }
  }
}