8

Linux、osx、solaris など、複数の構成でビルドしてテストする必要があります。「linux」、「osx」、「solaris」というラベルの付いたスレーブ ノードがあります。各構成で、(a) ビルド (b) スモーク テストの実行 (c) スモーク テストに合格した場合、完全なテストの実行などを行います。

マルチ構成ジョブが答えかもしれないと思ったので、マルチ構成ビルド ジョブをセットアップし、各 OS で同時ビルドを開始します。ビルド ジョブはダウンストリームのスモーク テスト ビルドをトリガーし、次にフル テスト ジョブをトリガーします。

私は次の問題に遭遇しました

  1. 構成の 1 つが失敗すると、ジョブ全体が失敗し、Jenkins はダウンストリーム ジョブを起動しません (たとえば、solaris ビルドが失敗した場合、Jenkins は osx および linux のスモーク テストまたはフル テストを実行しません)。

  2. solaris のビルドには他のビルドよりも約 2 倍の時間がかかります (約 1 時間)。Linux と osx のスモーク テストは、solaris のビルドが完了するのを待たずに済ませたいと思います。

これは、ジョブの 3 つのパイプラインを手作業で作成し、それらを「最初の」ジョブ (つまり、次のジョブの作成とハンドチェーン) の背後に配置することを意味するのでしょうか?

build-linux   smoke-test-linux   full-test-linux
build-osx     smoke-test-osx     full-test-osx
build-solaris smoke-test-solaris full-test-solaris

明らかな何かを見逃しましたか?

4

2 に答える 2

4

私の知る限り、答えは、システムごとに 1 つずつ、3 つのマトリックス ジョブを作成することです。次に、build-job を試金石として 3 つのサブジョブ (build、smoke-test、fulltest) を設定します。

于 2011-07-04T05:05:53.303 に答える
3

ビルド、スモーク テスト、フル テストを 1 つのマルチ コンフィギュレーション ジョブに結合することを考えたことはありますか? 少し面倒なことを除けば、これでうまくいくはずです。

最初の問題に答えるには: 結果に関係なくダウンストリーム ジョブをトリガーするには、パラメーター化されたトリガー ビルドを使用して完了時に実行し (常にトリガー)、「パラメーターなしでビルドする」をチェックします。

2番目の問題に答えるには、すべてを網羅するマルチ構成(マトリックス)ジョブを使用するか、前述のように3つの個別のジョブストリームを使用してください。更新: 各ステップ (ビルド、スモーク テスト、フル テスト) に対して 3 つの連続したマトリックス ジョブを実行できますが、ビルド ステップのいずれかが失敗した場合、スモーク テストは実行されません。

于 2011-12-15T14:31:46.797 に答える