2010-12-29 13 views
0

私のハドソンサーバーが現在ビルドを実行していて、新しいconfig.xmlを現在実行中のビルド。これはどのように達成できますか?Hudson:現在実行中のジョブのconfig.xmlを更新し、実行中のジョブが更新されたconfig.xmlを即座に認識するようにする

第2に、新しいconfig.xmlがPOSTされると、現在実行中のビルドを新しいconfig.xmlに認識させてビルドを続けることができますか?例えば

、config.xmlは以下のこと

java -cp Test.jar argument1 

ビルドが開始され、実行されているを実行するように指定します。

新しいconfig.xmlは、現在実行中のジョブにPOSTされます。

java -cp Test.jar newargument1 

config.xmlファイルで更新されたnewargument1をTest.jarに認識させるにはどうすればよいですか?

基本的に、私は新しいconfig.xmlアップデートを使って、最初から新しいビルドをやり直す必要がないようにしようとしています。

答えて

0

ハドソンの機能を使用することはできません。ビルドをキャンセルして再起動する必要があります。

つまり、醜い回避策があります。ファイルからパラメータを読み取る必要があります。この方法で、ファイルを変更することができます。ジョブがファイルを読み込んだ時点で、最新のパラメータが取得されます。残念なことに、1つのビルドステップから別のビルドステップにデータを渡す方法がないため、ビルドステップごとにファイルからパラメータを読み取る必要があります。ビルドステップが1つしかない場合は、このソリューションは役に立ちません。したがって、本質的に、ビルド自体に変更を認識させる必要があります。

実行の途中でビルドパラメータを変更すると、結果が乱れる(再現性がない)という結果が出ることがあります。だから私のお勧めは、キャンセルして再起動することです。

問題の解決方法が他にもあるかもしれません。大きな写真を説明できますか?なぜあなたは再起動を避けたいのですか?チェックアウトには長い時間がかかりますか?

1

最初のconfig.xmlファイルをfile1、2番目のconfig.xmlファイルをfile2とします。

なぜビルドの途中でfile1をfile2に変更しますか? あなたは それのいずれかのPowerShellまたはbashスクリプト

- または -

を使用すると、そこに特定の理由がないと、その中を実装することができるだろう理由(henece状態)が存在しなければならないのいずれかあなたはちょうど(2つのXMLファイルを結合し、ビルドを最初から最後まで実行させることを意味する)file2をfile1に(文字通りではなく)添付することができます。

ファイルfile1の上にFILE2を意味し、別のXMLの上にXMLを投稿するためには、以下のURLにあなたのXMLを投稿:

http://<HUDSON_URL>/job/<JOB_NAME>/config.xml 

をビルドが実行されている間しかし、これは効果がありません。ジョブが停止した後、および/またはfile1の実行が終了した後にのみ実行されます。

curlを使用している場合は、必ず--data-binaryオプションを使用してconfig.xml(file2)をhudsonサーバーに送信してください。

関連する問題