jenkins - 在 Jenkinsfile 中设置环境变量
问题描述
这是一个奇怪的问题。我正在尝试使用我们的 Jenkins 团队创建的一个函数,该函数接受一个名为 secrets 的环境变量并使用它来推送到保险库。
当我使用参数构建并将机密用作参数时,这工作正常,我也可以使用打印出机密
print("{$env.secrets}")
但我想在我的文件中生成机密而不是将它们作为参数发送。
如果我不包含参数并在我的代码print("{$env.secrets}")
打印中定义一个名为 secrets 的变量null
并且该函数不起作用,
我努力了
SECRETS = "{{\"username\":\"${USERNAME}\",\"password\":\"${PASSWORD}\"}}"
environment {
secrets = SECRETS
}
使用秘密的函数不直接接受它作为参数,所以我不能改变我发送给它的东西,它看起来像这样
withCredentials([[$class: 'XXXXX', credentialsId: 'XXXX',
usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
vaultLoadSecrets(username:"$USERNAME",password:"$PASSWORD")
}
我想如果我可以{$env.secrets}
在运行时设置它应该能够解决我的问题,有人知道该怎么做吗?
谢谢
解决方案
假设这个函数被称为 processSecret(),那么你可以像下面的代码片段那样做:
withEnv(["secrets="+SECRETS]) {
processSecret()
}
推荐阅读
- wordpress - 用户如何拥有该用户在该用户所属的子站点中的用户角色权限?
- opencv - 如何检查 libjpeg-turbo 是否内置于 opencv?
- linux - 进程中线程的资源依赖关系是什么?
- react-native - 如何将原生广告添加到我的 React Native 应用程序?
- php - 仅从数组中获取匹配的键值
- javascript - 使用正则表达式语法替换记事本++中的文本
- angular - 点击时如何保持价值(ng-selelect)
- apache-spark - Apache Beam KafkaIO BatchMode OOM 问题
- swift - 如何检测 SwiftUI 中的右键单击?
- wordpress - 在 Wordpress 中批量替换缺失的图像