2010-11-29 12 views
0

私は約30ほどのプロジェクトでハドソンで働いています。今はコミット時に自動的にビルドされます。コミット時に構築する機能を維持しながら、トランクとブランチ間ですべてのプロジェクトを切り替える方法はありますか?hudsonの支店からビルド

私はブランチを指定するためにビルドをパラメータ化しましたが、これは自動ビルドを中断します。

答えて

1

さて、あなたはオプションのカップルを持っているあなたはまだ自動ビルドを持つことができますが、オプションのいずれかがデフォルトになります(トランクやブランチのどちらかになりますトランクプロジェクトのための1、および1:デフォルト)

2)幹と枝

3のために、プロジェクトごとに別々のビルドを持っているが)(これは私はそれが私たちの場所に設定している方法です)2つのビルドサーバーを持っています具体的にはブランチ用です。

+0

私はあなたの3番目のオプションを検討しています。 #1はまだ私にトラブルを与えています。#2はビルドトリガーの "依存関係の構築時にビルド"の問題に遭遇します。 #3はすべてを素敵に分離しています。 –

+0

オプション3は私たちが進んだものです。 –

+0

素晴らしい!私は、コピーアイデアが最も簡単でしょう – Sagar

1

「スイッチ」の使い方は完全にはわかりませんが、ブランチの使い方によって異なります。 (私たちのセットアップでは、継続的なビルドを持つブランチは長期にわたるプロジェクトやリリースとなる傾向がありますので、トランクビルドとは別のブランチごとにビルドを設定します。 )

このアプローチにはいくつかの方法があります。

  1. Hudson Remote APIを通じて再設定(またはコピーするスクリプト)ジョブを書きます。 http://your-hudson/job/JOB_NAME/apiを見ると、新しいジョブ構成を送信する方法の詳細が表示されます。それはscm/location/remoteプロパティを編集する自動化された方法です。

  2. scmでコミット後のフックを使用して、パラメータ化されたビルドを実行します。 A post on the Hudson Labs blogは、(ポーリングではなくコミットをプッシュするために)サブバージョンポストコミットフックを設定する方法を説明しています。何をビルドするかを決めるには、スクリプトでもう少し作業をする必要があります。この解決策は私にとってかなり難しいようです。

    1)あなたはパラメータ化を使用することができますビルド:

1

+1またはsagar:最初の考えでは、私は最初のオプションをbobnixの問題の解決策として提案していました。

しかし、何度か疑問がありますが、私は彼が実際に達成したいことがわかりません。彼がブランチまたはトランクのいずれかからビルドをトリガーしたい場合は、ポストコミットフックを使うほうが良いかもしれません。 + 1 Dave B.(ソリューション2)

もし彼がちょうどトランクの代わりにブランチを構築したいのであれば、最良の解決策ではなく、Daveの1番の解決策でしょう。

Bobnixは実際にブランチを構築したいと思っていますが、新しい仕事を設定するための努力はしません。解決策は、トランクに戻す時まで既存のジョブを再構成することです。開発がほとんどない場合、ブランチに開発がある場合、これは有効な思考の列である可能性があります。しかし、コピーはとても簡単ですのであなたのトランクジョブをコピーし、SCMを支店に調整する方が良いはずです。あなたがもうブランチを必要としないときは、それを削除するだけです。

+0

それがうまく動作します願っていますが、それは30件のプロジェクトのために働くだろう場合、私は思ったんだけど。私が2つの別々のHudsonsを設定する唯一の理由は、1つはブランチに、もう1つはHEADには、93のプロジェクトがあるということです。 Bobnixが一度にすべてのジョブを切り替えたい場合 – Sagar

+0

私は確認されませんでした。もしそうなら、彼はファイルシステム上のジョブをコピーすることができ(ジョブのconfig.xmlで十分です)、その上にスクリプト可能なエディタ(例えばsed)を実行することができます。 Hudsonで設定をリロードしてください(または単に再起動してください)。新しいジョブがそこにあり、ブランチを指しています。 –

+0

30のプロジェクトをすべて移動する必要がありました。依存関係が構築されるときにビルドトリガーがあるので、私はSagerの3番目のオプションを使いました。 2つのプロジェクトで同じアーティファクト(トランク&ブランチ)を構築すれば、十分に連鎖して、競合状態に陥ることになります。 –