TeamCity 7.1.3 には次のセットアップがあります。
プロジェクトA
- ビルド & デプロイ A
- テスト A (クイック)
- テスト A (遅い)
- テスト A (非常に遅い)
プロジェクトB
- ビルド & デプロイ B
- テスト B (クイック)
- テスト B (遅い)
A のすべてのテストは「Build & Deploy A」に依存し、B のすべてのテストは「Build & Deploy B」に依存しています。依存関係はすべて、次の設定を持つスナップショットの依存関係です。
- 適切なビルドがある場合は、新しいビルドを実行しないでください
- 適切なビルドから成功したビルドのみを使用する
- 同じエージェントでビルドを実行する
すべてのテストには VCS トリガーがあります。スロー テストは、ソース管理の特定のフォルダーが変更された場合にのみ実行されます。プロジェクト A に対してコミットが行われると、次のプロジェクトがビルド キューに追加されます。
- ビルド & デプロイ A
- テスト A (クイック)
- テスト A (遅い)
- テスト A (非常に遅い)
プレコミット ビルドは、ビルド キューでより高い優先度で実行されます。そのため、「Build & Deploy A」の実行中にプロジェクト B に対して事前コミット チェックが行われると、ビルド キューは次のようになります。
- ビルド & デプロイ B
- テスト B (クイック)
- テスト B (遅い)
- テスト A (クイック)
- テスト A (遅い)
- テスト A (非常に遅い)
このセットアップの問題は、プロジェクト B がデプロイされた後に A のテストが実行されることを意味することです。これは、プロジェクト B の展開によって、プロジェクト A に必要なファイルの一部が上書きされるため、問題になります。個人用ビルドによって上書きされるファイルは、展開されたファイルであり、チェックアウト フォルダーにないため、ロールバックされません。テストのビルド チェーンが中断されないようにする方法はありますか?
依存関係から「適切なビルドがある場合は新しいビルドを実行しない」設定を削除すると、各テストで完全なビルドとデプロイが必要になります。'Test A (Very Slow)' が実行されることがありますが、'Test A (Slow)' は実行されないため、低速のテストは他のテストに依存して線形チェーンを作成することはできません。
残念ながら、現時点ではビルドとデプロイを分割してアーティファクトを作成することはできません。
これを TeamCity で効率的に設定する方法はありますか?