2017-09-07 70 views
0

Jenkinsパイプラインジョブのパスワードパラメータプラグインからログインに使用する別のフリースタイルジョブに値を渡したいとします。私はアウトプットや他の場所でそれを見たくありません。私は2つのフリースタイルの仕事の間にそれをすることができますが、パイプラインは少し異なっているようです。Jenkinsパイプライン下流のジョブにパスワードパラメータを渡す

文字列として送信できる場合でも、[パラメータ]タブまたは[環境変数]タブに表示されます。

これはどのように実現できるのでしょうか?

答えて

0

親と子の両方のジョブがパスワードパラメータを使用していることを確認する必要があります。このパラメータタブでパスワードをマスクし、パスワードパラメータとしてビルドパラメータを作成し、環境変数タブでパスワードをマスクしません。環境変数としてビルドにパスワードを入力してマスクパスワードを有効にする

0

あなたはパイプラインであなたがwithCredentialsブロックに書き込みされ、プラグインの資格情報を使用する必要がありますプラグイン Parameterized+Trigger+Plugin

1

下記の助けを借りて、あなたに下流の仕事をトリガすることができます。たとえば、次のabcd1234-56ef-494f-a4d9-d5b5e8ac357dは限り(私はデモの目的のために、明らかに例で行ったように)あなたが変数をエコーし​​ませんように、あなたはジェンキンスを持っている資格証明書のIDであり、当然の

withCredentials([usernamePassword(credentialsId: 'abcd1234-56ef-494f-a4d9-d5b5e8ac357d', 
        usernameVariable: 'USERNAME', 
        passwordVariable: 'PASSWORD')]) 
       { 
        echo 'username='+USERNAME 
        echo 'password='+PASSWORD 
       } 

、ユーザ名パスワードは表示されません。

+0

は、私はそれを試してみましたが、それは動作しますが、ご提案をいただき、ありがとうございます。しかし、私はジェンキンスのすべての信用情報を話すことなく、どのように達成できるのだろうと思っていました。さらに、それらをダウンストリームジョブに渡そうとすると、これらの値は2番目のジョブ「環境変数」タブに表示されます。 – VladH

1

同じ問題を解決するために何時間も費やしてきたことがありますが、私のために働いた:

あなたのパイプラインスクリプトで:

stages { 
    stage("Do something with credentials and pass them to the downstream job") { 
     steps { 
      build job: 'your/jobname/path', parameters: [ 
       [$class: 'hudson.model.PasswordParameterValue', name: 'PASSWORD', value: env.PASSWORD], 
       [$class: 'TextParameterValue', name: 'USERNAME', value: env.USERNAME] 
      ] 
     } 
    } 

パスワードパラメータを下流(フリースタイル)ジョブに渡すときには、hudson.model.PasswordParameterValueクラスを使用するのが賢明ですが、メインパイプライン(親ジョブ)のパラメータ定義に同じクラスを使用して作成する必要がありますそれは働く。パスワードパラメータを設定するでしょう、あなたのパイプラインの仕事で例えば

configure { 
     it/'properties'/'hudson.model.ParametersDefinitionProperty'/'parameterDefinitions' << 'hudson.model.PasswordParameterDefinition' { 
      name('PASSWORD') 
      description('My password') 
     } 
} 
関連する問題