【问题标题】:How to set a pre-defined dynamic name for a variable in a jenkins declarative pipeline如何在詹金斯声明性管道中为变量设置预定义的动态名称
【发布时间】:2021-11-16 16:51:03
【问题描述】:

是否可以在 jenkins 声明式管道中为变量设置预定义的动态名称?

env {
  TEST_2_SERIAL = 456789
}
stage('Test') {
  steps {
    echo ${TEST_${HARDWARE}_SERIAL}
  }
}

${HARDWARE} 值为 2 且${TEST_2_SERIAL} 值预定义为 456789 时,则${TEST_${HARDWARE}_SERIAL} 应为 456789

【问题讨论】:

  • 语言中一般不允许嵌套字符串插值。
  • @MattSchuchard 谢谢。如果它可以那样工作,我也有意见。不过,如果有人知道方法,想在社区中查看。

标签: variables jenkins jenkins-pipeline devops jenkins-declarative-pipeline


【解决方案1】:

不知道是否达到了你的预期,但是可以通过这种方式动态访问环境变量。

pipeline {
    agent any
    
    environment {
        TEST_2_SERIAL = 456789
        HARDWARE = '2'
    }
    stages{
        stage('Test') {
            steps {
                echo env["TEST_${HARDWARE}_SERIAL"]
            }
        }
    }
}

echo 会打印出TEST_2_SERIAL 的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多