2017-04-01 22 views
0

Jenkinsジョブで上記のプラグインを使用していますが、呼び出されたジョブをいくつかのカスタムソースから計算および/またはフェッチされたパラメーターを渡したいとします。シェルスクリプトで実行するのは簡単ですが、この種の動的計算を行う方法を組み込むAdd Parametersオプションはありません。Jenkins 2.xパラメーター付きトリガープラグイン計算パラメーター

私はEnvInjectプラグインを見つけましたが、ここでの問題は計算されたパラメータが秘密で、ディスク上のどこにも格納されないようにする必要があることです。 EnvInjectプラグインで把握できる唯一の方法は、最初に計算された秘密をディスクに書き込んだ後、EnvInjectプラグインを使用して後続のステップで環境変数としてそのディスクファイルから読み込む必要があります。

質問には、パラメータ化されたトリガプラグインの既知のパラメータソースがありますか(ドキュメントでは、パラメータソース自体がプラガブルであると言います)、パラメータを動的に計算することができますか?

答えて

0

私は、EnvInjectプラグインがGroovyスクリプトの評価から環境変数を注入できることを発見しました。単純なシェルスクリプトよりも少し不便です。特に、オンラインやプラグインのドキュメントで多くの例が見つからないためですが、動作します。

あなたは、「環境変数を注入する」チェックボックスをチェックすることにより、ビルド環境のセクションに置くことができるサンプルスクリプト、:

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; 
} 
関連する問題