TeamCity では、あるビルドが別のビルドが正常に終了するまで開始されないビルド依存関係を作成できます。TFS 2012でそれは可能ですか? 設定方法に関する詳細情報はどこで入手できますか?
1 に答える
簡単に言うと、TFS には同等の機能はありませんが、少し作業を行うだけで同じ目標を達成できます。
私が遭遇する一般的なシナリオは、チームがチェックイン時にいくつかの簡単なこと (コンパイル、高速な単体テスト) を実行するビルドを実行したいと考え、その直後にいくつかの遅いもの (統合テスト、テスト展開) を実行する別のビルドを実行したいというものです。など)。私はこれをチームで頻繁に行います。たとえば 5 分で実行される Gated Build をセットアップし、Gated Build がチェックインするとすぐに開始される CI ビルドを作成します。実行には 1 時間かかる場合があります。私はこのアプローチが気に入っています。開発者からのフィードバックがすぐに得られ、その後すぐに詳細なフィードバックが得られるからです。
サポートされている別のシナリオは、依存関係のビルドを明示的に開始することです。ラボ ビルド テンプレートを見ると、まさにこれを行っています。最初にアプリケーションの TFS ビルドが開始され、ラボ ビルドが終了するのを待ってから、ラボ ビルドが続行されます。理論的には、ビルド A キックオフ ビルド B を作成して、C と D などを開始することができます。
ニーズがそれよりも複雑な場合 (たとえば、複数のアプリケーションがあり、それぞれにビルドがあり、各アプリケーションの変更後にビルドする必要があるいくつかのアプリケーションを含む製品、場合によっては、いつでもキックオフする必要がある製品スイート ビルド) a 製品の変更 - これは私が扱ったシナリオです)。私は基本的に、これを処理するためにカスタム ビルド依存関係システムを実装しました。ビルドの依存関係を記述した XML ファイルを作成し、TFS に展開する単純な ISubscriber プラグインを作成しました。ビルド完了イベントをリッスンし、依存関係の構成を調べて、適切なビルドを開始します。