可以在Jenkins groovy中编写变量“${properties.${params.deployed_region}_env_region}”

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

您 好 , 我 正在 从 jenkins pipeline 中 的 属性 文件 获取 加载 变量 , 我 正在 属性 文件 中 定义 变量

Mumbai_env_region: ap-south-1
N.virginia_env_region: us-east-1

中 的 每 一 个
这里 Mumbai 是 选择 参数

pipeline {
    agent any
    parameters {
        choice(
            name: 'deployed_region',
            choices: ['Mumbai', 'N_virginia', 'Singapore'],
            description: 'Note: user can opt for deployment environment'
        )
    }
    stages {
       stage ('Prepare properties ') {
          steps {
            script {
              properties = readProperties file: "jenkinfiles/aws-properties/${params.deployed_region}.properties"

              }
            }
          }
        stage  ('echo test') {
          steps {
              sh """
               ls
               cd jenkinfiles
               echo '${BUCKET_NAME}'
               echo '${properties.${params.deployed_region}env_az}'
               echo '${properties.env_timezone}'
               echo '${properties.INPUT_env_region}'
               echo '${properties.N_virginia_env_region}'
              """
            }
        }

    }
}

格式
我 希望 执行 如下 sh 脚本

echo '${properties.${params.deployed_region)_env_region}'

格式
但 我 正在 geting _ env _ region 这样 的 无 属性 错误
但 我 正在 geting _ env _ region 这样 的 无 属性 错误

mrphzbgm

mrphzbgm1#

在不使用点标记法的情况下,尝试以下操作。

def propValue = properties["${params.deployed_region}_env_region"]

更新的完整管道

pipeline {
    agent any
    parameters {
        choice(
            name: 'deployed_region',
            choices: ['Mumbai', 'N_virginia', 'Singapore'],
            description: 'Note: user can opt for deployment environment'
        )
    }
    stages {
       stage ('Prepare properties ') {
          steps {
            script {
              properties = readProperties file: "jenkinfiles/aws-properties/${params.deployed_region}.properties"

              }
            }
          }
        stage  ('echo test') {
          steps {
            script {
                def propValue = properties["${params.deployed_region}_env_region"]
                  sh """
                      echo '${propValue}'
                  """
                }
            }
        }
    }
}

相关问题