2017-02-20 7 views
1

私は3つの子ジョブを呼び出す親Jenkinsマルチジョブを持っていて、親には同じパラメータが渡されています。 各子供は同じ子どもがウェブページ上で検索する必要がある一意の識別子であるため、同じタイムスタンプを使用する必要があります。

親がビルドされると、 "name"パラメータは$ {BUILD_TIMESTAMP}に設定されます。この "02201200"をFeb 2、12:00と短縮することができます。それぞれの子は、「現在の作業パラメータを渡す」と呼ばれます。しかし、各子が02201200を受け取る代わりに、それぞれ$ {BUILD_TIMESTAMP}を受け取り、この値をもう一度フェッチします(02201204など)。

親は$ {BUILD_TIMESTAMP}を評価し、その評価を変数自体ではなく子供に渡すようにするにはどうすればよいですか?

+0

問題を解決しましたか?現在のソリューションは私のシナリオにとってはうまくいかない。ありがとう – Robinho

答えて

0

可能な解決策の1つは、このタイムスタンプの値をファイルに書き込むことです。その後、「プロパティファイルからのパラメータ」オプションを使用して、後続のジョブでその値を参照できます。明らかに、ジョブシーケンスが実行されるたびにこのファイルを上書きし続けるだけです。

私はこの方法を使用して、一般的にすべてのメタデータ(システム/環境変数、ジェンキンパラメータ、ビルドプロパティなど)をプロパティファイルに保存し、それらをアーカイブすることもできました。このアプローチは、私が持っていた多くの問題を単純化/回避します。さて、すべてのビルドにはメタデータがアーカイブされています。川下のジョブや後のリファレンスでは、この1つのファイルから必要な情報をすべて取得できます。余分なパラメータを渡す必要はありません。

さらに、何か問題が生じた場合、メタデータは調査に非常に役立ちます。自分とチームにとって非常に有用であることが証明されているので、このシンプルな戦略をお勧めします。