2016-04-07 67 views
1

私はGroovy Postbuildステップで環境変数を読もうとしています。ビルドに渡されたパラメータの値を読み取ることはできますが、私のExecute Windows batch commandに設定されているパラメータの値を読み取ることはできません。私は他のジェンキンスステップ/ジョブで${custom_param}を使用している場合、それは私の値を取得し、Jenkins - groovyポストビルドステップで環境変数を読む方法

SET custom_param=myValue 

:私のExecute Windows batch commandの一例では

私はこれを行います。だから私はそれが価値があると確信しています。

  • manager.envVars [「CUSTOM_PARAM」]
  • build.buildVariableResolver.resolve:私はちょうど、私はそれらのどれも働いていない、そうするために以下のことを試してみましたグルーヴィースクリプトで

    をそれを得ることができません( 'CUSTOM_PARAM')

  • build.getEnvironment(リスナー)に.get( 'CUSTOM_PARAM')

ここにすべてのヘルプは素晴らしいことだ

+0

"groovy script"または "system groovy script"を実行していますか?どうやらグルーブスクリプトは環境変数にアクセスすることができません。その他の場所:http://stackoverflow.com/questions/21236268/access-to-build-environment-variables-from-a-groovy-script-in-a-jenkins-build-st – hakamairi

+1

別のバッチでエコーしてみてください、それは通常動作しません。 EnvInjectプラグインが役立つかどうか確認してください。 –

答えて

0

"Windowsコマンドバッチ"ステップでカスタム変数を設定すると、これらの変数はこのJenkinsステップでのみ使用できます。

ジェンキンス一度あなたが永続的にいくつかの変数を設定したい場合は、あなたがSETXコマンドを使用しようとすることができます...あなたの変数が失われ、次のステップに

を移動: What is the difference between setx and set in environment variables in Windows?

1

(あなたと仮定すると、 「)グルーヴィーサンドボックス内でスクリプトを実行していない再
怒鳴るをお試しください:

build = Thread.currentThread().executable 
String jobName = build.project.getName() 
job = Hudson.instance.getJob(jobName) 
my_env_var = job.getLastBuild().getEnvironment()["YOUR_ENV_VAR"] 
0

Groovy Postのビルド・ステップは別のプロセスとして実行されます。通常のJVMプロセスとして環境にアクセスできます。

EnvInjectプラグインをビルドステップとして使用できます。それ以降のビルドステップでは、通常の環境アクセス(GroovyスクリプトのSystem.env)でこれを読み取ることができます。