Jenkinsパイプラインジョブのパスワードパラメータプラグインからログインに使用する別のフリースタイルジョブに値を渡したいとします。私はアウトプットや他の場所でそれを見たくありません。私は2つのフリースタイルの仕事の間にそれをすることができますが、パイプラインは少し異なっているようです。Jenkinsパイプライン下流のジョブにパスワードパラメータを渡す
文字列として送信できる場合でも、[パラメータ]タブまたは[環境変数]タブに表示されます。
これはどのように実現できるのでしょうか?
Jenkinsパイプラインジョブのパスワードパラメータプラグインからログインに使用する別のフリースタイルジョブに値を渡したいとします。私はアウトプットや他の場所でそれを見たくありません。私は2つのフリースタイルの仕事の間にそれをすることができますが、パイプラインは少し異なっているようです。Jenkinsパイプライン下流のジョブにパスワードパラメータを渡す
文字列として送信できる場合でも、[パラメータ]タブまたは[環境変数]タブに表示されます。
これはどのように実現できるのでしょうか?
親と子の両方のジョブがパスワードパラメータを使用していることを確認する必要があります。このパラメータタブでパスワードをマスクし、パスワードパラメータとしてビルドパラメータを作成し、環境変数タブでパスワードをマスクしません。環境変数としてビルドにパスワードを入力してマスクパスワードを有効にする
あなたはパイプラインであなたがwithCredentials
ブロックに書き込みされ、プラグインの資格情報を使用する必要がありますプラグイン Parameterized+Trigger+Plugin
下記の助けを借りて、あなたに下流の仕事をトリガすることができます。たとえば、次のabcd1234-56ef-494f-a4d9-d5b5e8ac357d
は限り(私はデモの目的のために、明らかに例で行ったように)あなたが変数をエコーしませんように、あなたはジェンキンスを持っている資格証明書のIDであり、当然の
withCredentials([usernamePassword(credentialsId: 'abcd1234-56ef-494f-a4d9-d5b5e8ac357d',
usernameVariable: 'USERNAME',
passwordVariable: 'PASSWORD')])
{
echo 'username='+USERNAME
echo 'password='+PASSWORD
}
、ユーザ名パスワードは表示されません。
同じ問題を解決するために何時間も費やしてきたことがありますが、私のために働いた:
あなたのパイプラインスクリプトで:
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')
}
}
は、私はそれを試してみましたが、それは動作しますが、ご提案をいただき、ありがとうございます。しかし、私はジェンキンスのすべての信用情報を話すことなく、どのように達成できるのだろうと思っていました。さらに、それらをダウンストリームジョブに渡そうとすると、これらの値は2番目のジョブ「環境変数」タブに表示されます。 – VladH