【发布时间】:2018-10-31 17:19:23
【问题描述】:
我已经按照post 实现了为 env 变量加载 groovy 文件。
env.groovy:
env.DB_USER = 'testuser'
env.DB_PASS = credentials('DB_PASS')
Jenkinsfile:
stages {
stage ("print") {
steps {
load "${WORKSPACE}/env.groovy"
echo "${env.DB_USER}"
echo "${env.DB_PASS}"
}
}
}
输出:
[Pipeline] echo
testuser
[Pipeline] echo
@credentials(<anonymous>=DB_PASS)
在加载 groovy 环境变量文件时,DB_PASS 是否可以访问 Jenkins 凭证存储?
注意:我知道我可以访问 Jenkinsfile 的 environment { } 块中的环境变量。但由于我有这么多环境变量,我想知道是否可以在一个单独的 groovy 文件中引用它们。
【问题讨论】:
-
所以您希望您的 echo "${env.DB_PASS}" 语句实际打印出密码?
-
嗯,是的,暂时看看它是否有效。通常它只会像这样 ****** 屏蔽密码。但我从未见过它打印出@credentials(
=DB_PASS),这让我觉得访问凭证存储不起作用。 -
我认为这是因为在 jenkinsfile 中使用凭据('credential_id')来获得所需的行为。该语法不适用于 groovy 文件。我正试图让我的詹金斯起来。如果我发现了什么,我会更新。