2017-08-30 4 views
2

を返す:私はRunWrapperオブジェクトが返されるビルドステップを使用する場合、私は、それを理解するようジェンキンスパイプラインステップを構築 - getBuildVariables()I試験Jenkinsfileで次のコード持って空のマップ

node { 
    stage 'Build' 
    def job1 = build 'Sample_Freestyle' 

    def dur = job1.getDuration() 
    println dur 

    def vars = job1.getBuildVariables() 
    println vars 

    def myMap = [k1:'v1', k2:'v2', k3:'v3'] 
    println myMap 
} 

を。しかし、私は左だ、私はこれを実行するたびに

echo "Hello World" 

、それが正しく実行されます。私は彼らにモーメントが簡単なWindowsバッチコマンドを実行します「Sample_Freestyle」という名前の私のテストジョブのビルド変数を取得しようとしています空の地図。私はgetDuration()メソッドをテストし、それは期待どおりに戻ります。私はRunWrapperクラスhereを見て、それはenvがヌルであるかもしれないことを示しています(212行目)が、それは仮説です。

誰でもgetBuildVariables()を呼び出すときに空のマップを取得する理由を知っていますか?私は間違った方法でこれについて行くのですか?

+0

'Sample_Freestyle'はパラメータ化されたジョブですか? –

答えて

0

getBuildVariables()は、ジョブのユーザー定義パラメータを返します.WORKSPACEやBUILD_TAGなどのジョブの環境変数は返しません。

Vitaliiのコメントに基づいて、私は実験を行い、Sample_Freestyleジョブにパラメータを追加しました。テスト文字列パラメータを追加すると、マップは空ではなくなりました。私が得た:

{TEST_PARAMETER=Test Parameter} 

私は(メソッド名はgetBuildVariablesから変更することをお勧め)、一貫した命名パラメータ()またはgetBuild パラメータを()getJobします。

関連する問題