クリーンチェックアウト
クリーンチェックアウト (クリーンなソースとも呼ばれる)は、次のビルドで VCS からすべてフェッチされたソースのコピーを確実に取得する操作です。 ビルドチェックアウトディレクトリのすべてのコンテンツが削除され、ソースがバージョン管理から再取得されます。
クリーンチェックアウトの実施
新規ファイルの追加、既存ファイルの変更または削除によって、チェックアウトディレクトリの内容が外部プロセスによって変更された場合は、クリーンチェックアウトをお勧めします。
以下の手順を実行することで、ソースのクリーニングを強制できます。
ビルド構成の場合 — ビルド構成ホーム ページから、 アクション ドロップダウンメニューを開き、 クリーンチェックアウトを強制… を選択します。
エージェントの場合 — エージェントの詳細 ページで、 その他 セクションの このエージェントのソースをクリーンアップリンクをクリックします。
このアクションは、ソースをクリーンアップするエージェント / ビルド構成のリストを開きます。
クリーンなソースは、トリガーされた後、選択された各エージェントで選択された各構成の次のビルド実行中に 1 回だけ実行される単一のアクションです。
TeamCity は VCS サーバーとの通信を最適化するために、ソースの内部キャッシュを保持します。 キャッシュは clean-up 中にリセットされます。 ソースの更新に関する問題を解決するには、UI の 診断 | キャッシング タブを使用するか、 <TeamCity データディレクトリ>/system/caches ディレクトリを削除して、キャッシュを手動でリセットする必要がある場合があります。
自動クリーンチェックアウト
ビルド構成の作成/編集 > バージョン管理設定 ページでオプション ビルド前にチェックアウトディレクトリ内のすべてのファイルを削除 をチェックすれば、ビルドのたびにソースの自動クリーニングを有効にすることもできます。 このオプションがチェックされている場合、TeamCity は各ビルドの前にフルチェックアウトを実行します。 クリーンチェックアウトが有効になっていない場合、TeamCity はチェックアウトディレクトリ内のソースを必要な状態へ差分的に更新します。
TeamCity は、チェックアウトディレクトリ内のソースが期待される状態と一致していないかどうかを検出しようとし、そのような場合はソースが適切であることを確認するためにクリーンチェックアウトをトリガーします。 つまり、特定の状況では、VCS 設定で有効になっておらず、ユーザーが Web UI からリクエストしていない場合でも、TeamCity はクリーンチェックアウトが必要であることを検出できます。 このような場合、チェックアウトディレクトリのコンテンツはすべて削除され、ソースによって最初から再作成されます。 決定に関する詳細が利用可能な場合、それらはチェックアウト関連のロギングの前にビルドログに追加されます。
TeamCity が自動クリーンチェックアウトを実行するケースの概要は次のとおりです:
ビルド構成の Version Control Settings で ビルド前にチェックアウトディレクトリ内のすべてのファイルを削除 オプションを使用して有効になっている場合
ビルドチェックアウトディレクトリが見つからないか、空です(ビルド設定が最初にエージェントで開始されたか、最後のビルド以降にディレクトリが消滅したかのどちらかです)。 これには次のものも含まれます。
特定のチェックアウトディレクトリで設定された時間(またはデフォルト)にビルドが実行されなかったため、ディレクトリが空になりました。 詳細については、 自動チェックアウトディレクトリのクリーニングを参照してください。
以前のビルドの 1 つで ディスクの空き容量が足りず、ディレクトリが削除されました
ユーザーがビルド構成またはエージェントの Web UI から「クリーンチェックアウトを実施する 」アクションを呼び出しました
ビルド前にチェックアウトディレクトリ内のすべてのファイルを消去オプションが選択されているか、対応するオプションが設定されているトリガによって、ビルドのカスタム実行ダイアログを介してビルドがトリガされた
ビルドが、"ビルド前にチェックアウトディレクトリ内のすべてのファイルをクリーン"オプションが有効なスケジュールトリガーによってトリガーされた場合、またはビルドチェーンの一部として、最上位のビルドがスケジュールトリガーのその設定でトリガーされ、かつ"すべてのスナップショット依存関係に適用"も選択されていた場合
ビルド設定の VCS 設定が変更されました
このディレクトリの以前のビルドは、VCS 設定が異なるビルド構成のものでした (個々の VCS 設定と VCS ルートを持つ複数のビルド構成に同じチェックアウトディレクトリが指定されている場合にのみ発生する可能性があります)
このディレクトリ内の前回のビルドが、現在のビルドよりも新しいリビジョンでビルドされていた場合 (履歴ビルドでのみ発生する可能性があります)
前回のビルド中にパッチの適用またはロールバック中に重大なエラーが発生したため、TeamCity がチェックアウトディレクトリに既知のバージョンのファイルが含まれていることを保証できない場合
ビルドファイルクリーナー (Swabra)が対応するオプションで有効になっており、クリーンチェックアウトが必要であることを検出した場合
カスタムチェックアウトディレクトリには、
%teamcity.agent.work.dir%などのエージェント固有のパラメーターが含まれています (8.1 より前)