2015-09-30 33 views

答えて

6

技術的には、1つのジョブから次のジョブにenv変数を渡すことはできません。これを実行するためのプラグインはわかりません。

ただし、テクニックがあります。最初のジョブ(例:exported.properties)にプロパティファイルを作成し、そのファイルをジョブ成果物に追加してから、このファイルを2番目のジョブのEnvInject pluginにインポートします。

これは、第1ジョブと第2ジョブの間に何らかのリンクがあり、通常はCopy Artifactプラグインで実現されると仮定していますが、多くのワークフローのようなプラグインも役立ちます。

たとえば、プロパティファイルを作成するには、「Execute shell」というステップを追加します。

echo "# Saving some version properties 
BUILD_VERSION=${BuildVersion} 
BUILD_NODE_NAME=${NODE_NAME} 
SOURCE_JOB=${JOB_NAME} 
" > ${WORKSPACE}/BuildVersion.properties 

もちろん、他のビルドステップを使用することもできます。 Windowsシェル、Groovyスクリプトなど...それぞれ固有の構文を持っています。

+0

最初のジョブでプロパティファイルを作成するにはどうすればいいですか?そのプラグインはありますか?あなたは私の例を助けてくれますか? –

+0

(* nix)シェルスクリプトレットの例を使って答えを拡張しました –

0

あなたのユースケースに応じて、次の2つの方法があります: -

1)EnvfilePlugin -

は、ご使用の環境変数が一定であるとフライ/ダイナミックに変化していないならば、あなたがそれらを保存することができ、このプラグインをインストールします。テキストファイルに保存して、Jenkinsジョブの設定ページでファイルの宣誓を出します。 ビルド環境チェックの下にファイルを使用して環境変数を設定します。 ここにそのファイルのパスを指定します。

最初のジョブで環境変数が作成された場合は、再度、環境変数をすべてファイルに保存し、上記の方法で参照できます。

2)EnvInject plugin -

このプラグインをインストールして、ジョブ設定paegに行きます。 "実行のための環境を準備する"を選択し、上記の答えのPatriceに記載されているプロパティを保存し、スクリプトのパスやその他の詳細も指定します。あなたが次に

build job: 'my-downstream-job', parameters: 
    [[$class: 'StringParameterValue', name: 'MY_VAR', value: 'Hello world!']] 

することができます:あなたは、あなたの下流のジョブは、(ジョブ設定ページでパラメータを追加)パラメータその後、上流Workflow仕事からこのジョブをトリガーする、ワークフロースクリプトはこのようなものになるだろうことができます

0

my-downstream-jobで希望通りにMY_VARを使用してください。

関連する問題