簡體   English   中英

Jenkins 2.x參數化觸發器插件計算參數

[英]Jenkins 2.x Parameterized Trigger Plugin Computed Parameter

我在Jenkins作業中使用上面的插件,但想傳遞調用的作業某些參數,這些參數是從某些自定義來源計算和/或獲取的。 在shell腳本中很容易做到,除了內置的“添加參數”選項均不允許使用這種方式進行這種動態計算。

我找到了EnvInject插件,但是這里的問題是計算出的參數是秘密的,需要避免將其存儲在磁盤上的任何位置。 我可以在EnvInject插件中找出的唯一方法是,首先將計算出的密鑰寫入磁盤,然后在隨后的步驟中使用EnvInject插件從該磁​​盤文件中將其作為環境變量讀取。

所以問題是,是否存在用於Parameterized Trigger Plugin的任何已知參數源(文檔稱參數源本身是可插入的)可以使我動態地計算參數?

因此,我發現EnvInject插件可以通過評估Groovy腳本來注入環境變量。 比簡單的shell腳本要方便一些,特別是因為在網上或插件文檔中找不到很多示例,但是它可以工作。

一個示例腳本,可以通過選中“注入環境變量”復選框將其放置在“構建環境”部分中:

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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM