2017-06-30 5 views
1

5つの子ジョブを作成するDSLを使用してシードジョブを作成します。ビルドステップの一環として、$ {WORKSPACE}環境変数を使用しました。これは、子ジョブが実行されているスレーブマシンから値を読み取る必要があります。ただし、子ジョブが作成されると、ワークスペースの値はマスターサーバーからのSeedJobsワークスペースの場所に置き換えられます。

シードジョブの$ {WORKSPACE}値を注入しないように制限する方法を教えてください。

これで私を助けてくれますか?次のように

おかげ 真野

+0

$ {WORKSPACE} env varを参照しているビルドステップを表示できますか? –

+0

回避策として、$ {WORKSPACE}を各子ジョブにハードコードされた環境の環境として設定しました。 しかし、私はビルドごとに別のケースがあります。たとえば、ビルドのようなバイナリが生成されます。$ {BUILD_ID} .rpm。これは、すべての子ジョブの一部として実行するビルドステップであり、BUILD_IDは子ビルドジョブIDでなければなりません。しかし、シードジョブからのbuild_idは子ジョブに注入されます。 –

+0

子ジョブのビルドIDが3で、シードジョブのビルドIDが45なので、出力がbuild.3.rpmであることが予想されます。しかし、私はbuild.45.rpmでバイナリを取得しています。子ジョブを手動でビルドしても、シードジョブのビルドIDにビルド名 –

答えて

1

あなたの仕事-DSLのコードで仕事生成のBUILD_NUMBERを参照するには、あなたはそれをコーディングする必要があります

"\${BUILD_NUMBER}" 

重要な部分は、前に\です$は、Jenkinsのjob-dsl seedジョブであるGoovyランタイムに関係するBUILD_NUMBER変数の評価を防止します。

生成ジョブのconfig.xmlには、シードジョブのビルド番号を表す数字の代わりに$ {BUILD_NUMBER}が含まれます。そして、あなたの生成された仕事は、それが実行されるときにそれを評価します。

+1

ありがとうRob、that works !!!!ビルド番号は、生成されたジョブの一部として評価されます。 \が実行されている間にシードジョブが評価されないようにする前に$記号を使用していました。 ありがとうございました! –

+0

私は喜んでいる!私は昨年の仕事dslで私の眼球まで行ってきたので、質問を続けてください。 –

関連する問題