我在Jenkins作业中使用上面的插件,但是想要将调用的作业传递给从某个自定义源计算和/或获取的一些参数。在shell脚本中很容易做到,除了没有内置的Add Parameters选项允许这种动态计算的方法。
我找到了EnvInject插件,但问题是计算参数是一个秘密,需要避免存储在磁盘上的任何地方。我能够在EnvInject插件中找到的唯一方法是首先将计算出的秘密写入磁盘,然后使用EnvInject插件在该后续步骤中将该磁盘文件作为环境变量读入。
所以问题是,参数化触发器插件是否有任何已知的参数源(文档说参数源本身是可插入的),这样我可以动态计算参数?
答案 0 :(得分:0)
所以我发现EnvInject插件可以通过评估Groovy脚本来注入环境变量。比简单的shell脚本更不方便,特别是因为没有很多例子可以在网上或插件文档中找到,但它确实有效。
一个示例脚本,您可以通过检查" Inject环境变量"来放入Build Environment部分。复选框:
try {
def json = /curl -s -H "X-Vault-Token:${VAULT_TOKEN}" -X GET https://xxx.yyy.zzz/v1/secret/oe/dmp/aws/mykey.key/.execute().text
def access_key_id = /echo '${json}' | jq -r '.data' | jq -r '.aws_access_key_id'/.execute().text>
def secret_access_key = /echo '${json}' | jq -r '.data' | jq -r '.aws_secret_access_key'/.execute().text
return ['AWS_SECRET_ACCESS_KEY' : secret_access_key, 'AWS_ACCESS_KEY_ID' : access_key_id]
} catch (Throwable t) {
println(t)
throw t;
}