VCS チェックアウト規則
VCS チェックアウトルールを使用すると、構成された VCS ルートの一部をチェックアウトし、バージョン管理のディレクトリをビルドエージェントのビルドチェックアウトディレクトリのサブディレクトリにマップすることができます。リポジトリ全体の VCS ルートを定義し、各ビルド構成にその関連部分のみをチェックアウトするように指示することができます。
チェックアウトルールは、UI に表示されるビルドの変更と、エージェント上のビルドでチェックアウトされるファイルに影響します。コミットがビルドの VCS ルートのチェックアウトルールパターンのいずれにも一致しない場合、TeamCity はそれを完全に無視します。このような変更は保留中として表示されず、現在の構成でビルドをトリガーすることはできません。
変更を表示しながらコミット時にビルドをトリガーしない場合は、VCS トリガールールを使用します。
一般的な推奨事項は、リポジトリのルートを指すいくつかの VCS ルートをできるだけ小さくし、チェックアウトルールを介して特定のビルド構成によってチェックアウトされるものを定義することです。
チェックアウト規則を追加する
管理に移動し、構成するプロジェクトをクリックします。
プロジェクトの一般設定ページで、ビルド構成にある関連するビルドをクリックします。
サイドバーからバージョン管理設定を選択します。
リストで VCS ルートを見つけ、チェックアウトルールを編集するをクリックしてルールを入力するフォームを開きます。
VCS リポジトリブラウザー
を使用して、チェックアウトするディレクトリを選択します。
TeamCity の Perforce サポートでは、チェックアウトルールが大文字と小文字を区別して扱われることに注意してください。Perforce ベースのビルド構成の大文字と小文字を区別しないようにするには、バージョン管理設定ページで、チェックアウト規則の編集フォームに次のコメントを追加します: ##teamcity ignore-case
構文
以下の例では、リポジトリ内のパス(VCSPath)は設定済みの VCS ルートに関連しています。エージェントのパス(AgentPath)はビルドチェックアウトディレクトリに関連しています。
単一のチェックアウト規則の一般的な構文は次のとおりです。
ルールが指定されていない場合は、すべてのファイルが含まれます。
ルールの入力を開始するときは、+: ルールを入力するとすぐに、TeamCity によってデフォルトの「すべてを含める」設定が削除されることに注意してください。
すべてのファイルを明示的に含めるには、+:. ルールを使用します。
除外チェックアウトルール ( -: 形式) は、除外ルールが効果的に処理される Perforce および TFS エージェント側チェックアウトを使用しない限り、通常はサーバー側チェックアウトのみを高速化することに注意してください。
他のバージョンコントロールシステムでは、エージェント側のチェックアウトは、含めるルールとして指定されたすべてのルートディレクトリをチェックアウトし、除外されたディレクトリを削除することで、除外チェックアウトルールをエミュレートする場合があります。このようなシステムでは、通常、エージェント側のチェックアウトでは除外チェックアウトルールを避ける必要があります。詳細については、VCS チェックアウトモードページを参照してください。
Git エージェント側チェックアウトでは、TeamCity は一部のチェックアウトルールをスパースチェックアウトパターンに変換し、サポートされる VCS チェックアウトルールのセットを制限します。
ビルド構成に、交差するチェックアウトルールを持つ複数の VCS ルート (たとえば、2 つの VCS ルートにチェックアウトルール +: foo => bar がある) がアタッチされていて、ファイルがエージェントでチェックアウトされている場合、チェックアウト中に一部のファイルがスキップされる可能性があります。UI に次の警告が表示されます。
この問題を回避するには、チェックアウトルール間の競合を解決するか、チェックアウトモードを「server-side 」に変更します。
規則を入力するときは、次の点に注意してください。
複数のルールを入力するには、各ルールを別々の行に入力する必要があります。
ファイルが含まれている場合、ルールがリストされている順序に関係なく、各ファイルに最も具体的なルールが適用されます。
演算子を入力しない場合、デフォルトで
+:になります。
規則を使用して、以下の操作を実行できます。
構文 | 説明 |
|---|---|
| ルートをビルドエージェントの |
| |
| |
| |
| |
3 つの VCS チェックアウト規則の例
上記の例では、最初のルールは src/help ディレクトリとその内容をチェックアウトから除外します。3 番目のルールは 2 番目のルールよりも具体的で、src/samples パスをビルドエージェントのデフォルトの作業ディレクトリにある samples パスにマップします。2 番目のルールは、src パスの内容をビルドエージェントの production/sources にマップします。ただし、最初のルールによって除外された src/help と、3 番目のルールによって別の場所にマップされた src/samples は除きます。
Git ルートのチェックアウトルールの制限
Git プラグインは、 git sparse-checkout (英語) を使用してエージェント上の Git ファイルをチェックアウトします。プラグインは、Git でサポートされる VCS チェックアウトルールのセットを制限する単純なファイルマッピング操作のみを実行できます。
次のルールがサポートされています。
ルールはファイルを再マップしてはならないことに注意してください。つまり、次のルールはサポートされていません : +:dirA/dirA1 => dirA/dirA2
1 つのルートに複数のチェックアウトルールを指定する場合は、それらのチェックアウトディレクトリ (ルールの右側の部分) に共通の親ディレクトリ ([prefix/]) があることを確認してください。エージェント側のチェックアウトではルール +:dirA => [prefix/]dirA のみがサポートされており、[prefix/] はすべてのルールで同じである必要があります。
例:
次のルールはサポートされていないことに注意してください: +:dirA=>[prefix/]dirA/postfix チェックアウトディレクトリパスに [/postfix] を追加し、構成の VCS チェックアウトモードが「エージェント上のファイルを常にチェックアウトする」に設定されている場合、新しいビルドを開始できません。

関連ページ:
ビルドチェックアウトディレクトリ
ビルドチェックアウトディレクトリは、特定の VCS ルートからのビルドソースがチェックアウトされる TeamCity エージェントマシン上のディレクトリです。ビルド構成が同じ VCS ルートで構成されている場合、このディレクトリは複数のビルド構成間で共有できます。詳細については、デフォルトのチェックアウトディレクトリおよびカスタムチェックアウトディレクトリを参照してください。チェックアウトプロセス:チェックアウトプロセスは、次のように VCS チェックアウトモードの影響を受けます。エージェント側チ...
VCS トリガーの設定
VCS トリガーは、TeamCity が構成済みの VCS ルートの新しい変更を検出するたびに新しいビルドを自動的に開始し、保留中の変更の変更を表示します。複数の VCS トリガーをビルド構成に追加できます。デフォルト設定の新しい VCS トリガーは、ビルド構成に保留中の変更があるとビルドをトリガーします。バージョン管理は、VCS コミットフック(設定されている場合)を尊重する VCS ルートの変更チェック間隔に従ってポーリングされます。チェックアウトルールに一致する変更のみが保留中として表示され...
Git
TeamCity は、Git をすぐにサポートします。Azure DevOps Services を使用した Git ソース管理がサポートされています (以下の認証に関する注意事項を参照)。このページには、VCS ルート設定の Git 固有のフィールドの説明が含まれています。一般的な VCS ルートプロパティについては、このセクションを参照してください。注意事項: リモート実行とテスト済みのコミットは IntelliJ IDEA プラグインでサポートされています。Visual Studio アドインで...
ブランチフィルター
VCS ルートにブランチが指定されている場合、TeamCity のさまざまな操作でブランチフィルターオプションが使用できるようになります。ブランチフィルターの使用箇所:現在、ブランチフィルターは、次の TeamCity 設定ページで構成できます。ビルド構成のバージョン管理設定ビルド構成に使用できるブランチのセットを制限します。このブランチフィルターは、他のブランチフィルターの前に適用され、カスタムビルドダイアログに表示されるブランチ、およびトリガーとビルドフィーチャーに表示されるブランチを制限...