web-dev-qa-db-ja.com

Jenkins-アップストリームからダウンストリームにパラメータを渡すにはどうすればよいですか?

私は3つのビルドを持っています:A-はフローを制御するマスタービルドですB-アノッタービルドC-はBIが文字列パラメーターをAに追加した後に実行されるので、ユーザーは文字列を手動で入力しますが、方法がわかりませんこのパラメーターをBにパスできますか?これが私のビルドフローであるとしましょう:

build( "B")build( "C")パラメーターをBにパスする方法がわかりません。ビルドフローまたはBビルド構成からパスする必要があり、どのように行うことができますか。

事前に感謝しますアレックス

6
user3502786

このようなもの:

build("B", B_parameter: params["A_parameter"])<br>
build("C")

https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin

3
dspiegel

これを行う1つの方法は、Parameterized Triggerプラグインを使用することです: https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin

これにより、以下を使用して別のジョブをトリガーできますが、これらに限定されません。

* a set of predefined properties 
* properties from a properties file read from the workspace of the triggering build
* the parameters of the current build

ビルドA、B、およびCを使用して、パラメーター化されたビルドとしてth3mを設定します(つまり、パラメーターの値を要求します)。これは、ジョブ構成ページの開始近くの設定です。たとえば、MY_IDという名前のパラメータを取得します。これは、ビルドAで$ MY_IDとしてアクセスできるようになりました。

これで、Aをビルドすると、MY_IDの入力を求められます。次に、ジョブAにビルドステップを追加して、パラメーターを使用して「B」をトリガーし、ビルドAのすべてのパラメーターを渡します。ビルドBには、Aのビルドを実行したときに設定されたパラメーター$ MY_IDも含まれます。

2
Ray

パラメータ化されたトリガープラグイン はあなたが探しているものです。マスタービルドから子ビルドにパラメーターを渡す方法の詳細については、 this リンクで私の答えを確認してください。

2
Technext

うわー、それで、「この方程式からどのプラグインが欠落しているのか?」を数時間プレイした後、 SECURITY-17 と呼ばれるジェンキンスの変更のためにこれらの答えのどれも機能しなかったことがわかりました。

この回答の手順を実行してもパラメータが転送されない場合は、この問題の詳細を提供する 他のStack Overflow回答 に移動してください。怠惰に感じていて、SECURITY-170が問題の核心であることを確認したい場合は、これを試すことができますtemporary再起動後も持続しないため、解決策:

  1. Jenkinsの管理->ノードの管理->名前に関係なく「マスター」を選択します
  2. スクリプトコンソールを選択します
  3. これを貼り付けて、Runボタンを押します:System.setProperty("hudson.model.ParametersAction.keepUndefinedParameters", "true")
  4. パラメータを転送していなかったビルドを再試行してください

それがあなたのために働いたなら、あなたはチェックすることができます この答え 私は別の質問に集まったが、それを試みる前に質問と私の答えの文脈の両方を読むことをお勧めします。

1

これが、子ジョブ(子ビルドB)にパラメーターを渡すためのパイプライン(マスタービルドA)スクリプトです。

build job: 'svn test', parameters: [string(name: 'srcpath', value: params["mainpath"]), string(name: 'revision', value: params["mainrevision"])]

設定します
-パイプラインジョブパラメータとしてのmainpathとmainrevision、
-子ジョブパラメータとしてのsrcpathとリビジョン

0
Harun