TeamCity 6 で一連のビルド構成を構成しようとしており、TeamCity によって可能になる最もクリーンな方法で特定の要件をモデル化しようとしています。
並行して実行したい一連の受け入れテスト (関連するシステムの機能領域ごとにグループ化された約 4 ~ 8 のテスト スイート) があります (それらをビルド構成としてモデル化して、複数のプラットフォームに分散できるようにします)。エージェントのセット)。
私の最初の調査から、スナップショットの依存関係AcceptanceTests
を介して個々の受け入れテスト構成のセットを取り込むメタビルド構成を持つことは、うまくいくはずです。次に、ビルド構成がトリガーされ、それらがすべて取り込まれると言うだけです。Commit
AcceptanceTests
AcceptanceSuiteA
AcceptanceSuiteB
AcceptanceSuiteC
これまでのところ、とても良いです (別の方法で構成Commit
をトリガーすることもできます。問題はAcceptanceSuiteA
、結果AcceptanceSuiteB
をAcceptanceSuiteC
手動で集計して、受け入れテスト全体の全体的な成功を判断する必要があることです)。
複雑なのは、いくつかのアーティファクトAcceptanceSuiteC
が必要なだけで、それ自体で生きることができ、次のことを行う必要があることです。Commit
AcceptanceSuiteA
AcceptanceSuiteB
DeploySite
(2分かかるとしましょう。この実行のためだけに完全に分離されたものをスピンアップする余裕はありません)- デプロイされたサイトに対してテストを実行する
問題は、次のことを確認できる必要があることです。
- ウェブサイトは一度だけ設定されます
- 2 つのスイートの実行中に Web サイトが破壊されることはありません
DeploySite
ビルド構成として設定し、それをスナップショットの依存関係として取得しAcceptanceSuiteA
てAcceptanceSuiteB
プルすると、AFAICT:
- の後続の実行または並行実行により、
AcceptanceSuiteB
別の実行がトリガーされ、使用中のおよび/または使用中DeploySite
の展開が破壊される可能性があります。AcceptanceSuiteA
AcceptanceSuiteB
同時に実行するビルドの数を制限して、一度に 1 つだけ実行するように強制することはできますが、依存部分がまだ実行されている間ではなく、一度に 1 つずつ実行する必要があります。
TeamCity でそのような階層をモデル化する方法はありますか?
編集: アイデア:-
がらくたの解決策はDeploySite
、「使用中フラグ」マーカーを設定し、構成でそのフラグをAcceptanceTests
クリアすることです[完了後]。問題は、ゲートが再び開かれるまで、次のパイプラインを待機させることの 1 つになります (ビルド内でブロッキング待機を行うと、気分が悪くなります。何かをするのに長い時間がかかる)。ただし、この種のものはここにフラグがあり、このビットをチェックしてください。これは、私が逃げようとしている一種の可変状態/フレークネスの匂いです。AcceptanceSuiteA
AcceptanceSuiteB
DeploySite
編集 2: エージェントの構成をプログラムで変更できれば、Agent Requirementsを require InUse=falseに設定し、デプロイの開始時にフラグを設定し、テストの実行後にフラグをクリアできます。