web-dev-qa-db-ja.com

ハドソンの経験-マトリックスプロジェクトの構築

誰かがその機能を試し、フィードバックがありましたか?または誰かが調べるのに役立つサンプルを知っていますか?

23
kukudas

私は数ヶ月前にこの機能を試しましたが、もう使用していません(これが必要ないという理由だけで、良い機能ではないからではありません)。

基本的に、n軸を定義します。各軸は、いくつかの値を持つプロパティです。

例を見てみましょう。可能な値「1.4」、「1.5」、「1.6」で軸「JDK」を定義し、可能な値が「Oracle」、「mysql」である別のプロパティ「データベース」を定義します。

したがって、ハドソンはビルドを6回起動します。

  • jDK 1.4の場合、プロパティdatabase = Oracleを使用します(つまり、JVMは-Ddatabase = Oracleで起動されます)
  • jDK 1.5の場合、プロパティdatabase = Oracleの場合
  • jDK 1.6の場合、プロパティdatabase = Oracleの場合
  • jDK 1.4の場合、プロパティdatabase = mysqlを使用
  • jDK 1.5の場合、プロパティdatabase = mysqlを使用
  • jDK 1.6の場合、プロパティdatabase = mysqlを使用

次に、すべてが完了すると、各反復の結果を確認できるようになります。

この機能は、複数の環境(私の例では、異なるバージョンのJDKまたはデータベース)でアプリケーションをテストする必要がある場合に非常に役立つ場合があります。

JDK軸を除いて、Hudsonによってエントリとして指定されたプロパティを自分で管理する必要があることに注意してください。私の例では、アプリケーションは「データベース」プロパティ自体を考慮に入れる必要があります。最終的に、プロジェクトがMaven化されている場合は、このプロパティを使用してMaven2構成で特定のプロファイルを有効にすることをお勧めします(詳細については、 ここ を参照してください)。

私の説明が十分に明確であることを願っています:)

27
Romain Linsolas

マトリックスビルドにはいくつかの問題があります。

  • プラグインとはおおむね互換性がありません-プラグインは改善されていますが、最新の状態に保つ必要があります。
  • アーティファクト-くねくねするのがはるかに難しい-URlはもう少し厄介で、FS(とにかく避けるべきです)でそれらを見つけることは今や悪夢です。

コンセプトが非常に優れていて、それが機能する場所で非常に便利なので、これは残念です。


編集

  • シングルポイントを開始できない。

これを回避する通常の方法は、パラメーター化されたビルドを同時に実行するように設定することです。これには独自の問題がありますが、同じコードと異なる定数を持つ多くのジョブを回避できます。

6
Danny Staple