0

次のダウンストリーム ジョブがあるとします。

// DOWNSTREAM JOB
DYNAMIC_VAR = ""

parallel(
  {
    DYNAMIC_VAR = new Date()    // Some other value determined 
                                // at runtime by this job
  },
  { 
    // Some other stuff...
  }
)

アップストリーム ジョブの一部として (以下の例を参照)、ダウンストリーム ジョブを呼び出し、ダウンストリーム ジョブ中に設定された変数にアクセスできるようにしたいと考えています。

// UPSTREAM JOB 
my_build = build("my-custom-job")

// Would like to beable to do something like
// out.println my_build.build.get_var('DYNAMIC_VAR')
//  or 
// out.println my_build.build.DYNAMIC_VAR

出力を見ると、変数が返されていないように見えるため、アクセスできません。これは、問題の変数 (DYNAMIC_VAR) がダウンストリーム ジョブの範囲内でのみ使用可能であるため、ジョブが終了すると変数が削除されるためだと思われます。

私が聞きたかった2つの質問は次のとおりです。

  1. ジョブの完了時に変数が削除されるのは正しいですか?
  2. これを(可能であれば)どのように達成できるか、誰かが考えていますか(必要に応じて追加のプラグインは問題ありません)?
4

2 に答える 2

0

1) variable=value ペアを何らかのファイルに出力することは、あなたにとって受け入れられる解決策でしょうか?

2)Jenkinsでgroovyをあまり使用していませんが、すべてのジョブの環境変数は次の場所に保存されています:

${JENKINS_HOME}/jobs/${JOB_NAME}/builds/${BUILD_NUMBER}/injectedEnvWars.txt

これにはEnvInject プラグインが必要な場合と必要でない場合があります。

于 2015-07-23T10:53:13.887 に答える