gpt4 book ai didi

jenkins-pipeline - 根据环境获取凭据

转载 作者:行者123 更新时间:2023-12-04 02:58:36 25 4
gpt4 key购买 nike

我可以像从此处获取的示例中解释的那样获取凭据 - https://jenkins.io/doc/book/pipeline/syntax/#environment

stage('Example') {
environment {
CREDS = credentials('MY_CREDS_DEV')
}
steps {
sh 'echo hello'
}
}

但我想做的是根据某些条件获取凭据。

例如,我在 Jenkins 凭据中定义了 MY_CREDS_DEVMY_CREDS_QA。我在 Jenkins 的“为运行准备环境”部分中定义了一个属性 ENV=dev

我想根据我的环境访问凭据,即 ENV 属性。

我尝试使用 CREDS = credentials('MY_CREDS_' + ${ENV}) 并尝试将字符串连接提取到一个单独的函数中并像 CREDS = credentials(concatenate( ${ENV})) 但我得到 Internal function call parameters must be strings.

看来我只能将一个字符串放入 credentials() 函数,这基本上意味着对其进行硬编码。但是我如何选择要使用的凭据 - dev 还是 qa?

最佳答案

使用 CREDS = credentials('MY_CREDS_' + ENV)CREDS = credentials("MY_CREDS_${ENV}")${ENV} 不会变成 'dev',而是变成 ${'dev'},因此不是字符串。

为了完整性:

事实上 - 在玩了 groovy 控制台之后 - 看起来 ${ENV} 会尝试使用闭包参数 调用一个名为 $ 的函数{ENV} 将返回 'dev'。如果您定义了如下函数,它将给出与 ENV 相同的结果:

def $(Closure closure) {
closure()
}

但很可能这不是您想要做的。

关于jenkins-pipeline - 根据环境获取凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51441352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com