TeamCity 2020.1ヘルプ

クリーンアップ

TeamCityのクリーンアップ機能により、古いビルドデータや不要なビルドデータを自動的に削除できます。

サーバーのクリーンアップ構成は管理 | サーバー管理 | クリーンアップ設定で使用可能です。クリーンアップスケジュールの設定が可能で、一般的なクリーンアップ情報が表示されます。

特定のプロジェクトに関連するクリーンアップルールは、プロジェクト設定 | クリーンアップ規則で構成されます。これらのルールは、クリーンアップするデータと保持するデータを定義します。これらは、プロジェクトまたはビルド構成に割り当てることができます。
クリーンアップルールを構成して、古いビルドとそのアーティファクトを削除し、データベースとキャッシュから不要なデータをパージして、ディスク領域を解放し、TeamCity UIからビルドを削除して、TeamCityのワークロードを削減することをお勧めします。

クリーンアップは、< TeamCity Data Directory >/system およびデータベースに保存されているデータを削除します。また、クリーンアップ中に、サーバーはさまざまなメンテナンスタスクを実行します(たとえば、VCSの完全なパッチキャッシュをリセットします)。

サーバーのクリーンアップ設定

サーバーのクリーンアップ設定管理 | サーバー管理 | クリーンアップ設定で構成されます。

ビルド履歴のクリーンアップはバックグラウンドプロセスとして実行されます。つまり、サーバーメンテナンスのダウンタイムはありません。

クリーンアップするデータ量によっては、処理にかなりの時間がかかることがあります。その間、サーバーのパフォーマンスは低下します。そのため、オフピーク時にクリーンアップをスケジュールすることをお勧めします。デフォルトでは、TeamCityは毎日3:00にクリーンアップを開始します。手動でクリーンアップを開始するも可能です。

クリーンアッププロセスの制限時間も指定できます。指定した時間枠内にすべてのデータがパージされない場合、残りのデータは次のクリーンアッププロセス中に削除されます。

クリーンアップが有効になっていると、TeamCityはデフォルトで1年間(365日)サーバー監査レコードを保存します。

手動クリーンアップ起動

サーバーのクリーンアップ設定の前回のクリーンアップセクションでは、以下のことが可能です。

  • 以前のサーバークリーンアップの日付と期間に関する情報を確認して、特定のタイミングでクリーンアッププロセスを開始するかどうかを判断します。

  • 今すぐクリーンアップを開始ボタンを使用して、手動でクリーンアップを実行します。

クリーンアップ中に、TeamCityは進行状況を報告します。必要に応じて、クリーンアッププロセスを停止できます。残りのデータは、次のクリーンアップ中に削除されます。

クリーンアップ規則

クリーンアップ規則は、現在のプロジェクト、そのサブプロジェクト、およびビルド構成のデータを消去する方法を定義します。

プロジェクト設定のプロジェクト設定 | クリーンアップ規則ページでは、現在のプロジェクトとそのビルド構成のクリーンアップルールを表示および管理できます。このプロジェクトにサブプロジェクトがある場合、オプションでそれらのルールも表示できます。

プロジェクトのクリーンアップルールには2つのタイプがあります。

  • 基本ルールは、どのデータをいつ削除するかを定義します。それらは設定が簡単で、ほとんどの一般的なクリーンアップのケースに対応しています。各プロジェクトおよびビルド構成に1つの基本ルールが割り当てられます。基本ルールの構成方法を読む

  • ルールを守るは、クリーンアップ中に保存するデータを定義します。それらは非常に柔軟ですが、基本ルールよりも構成に多くの労力がかかります。複数の保持ルールをプロジェクトまたはビルド構成に割り当てることができます。キープルールの構成方法を読む

Keepルールはよりきめ細かく、すべてのビルドを特定のタグ(たとえば、release)または特定のブランチで保持するようなケースをカバーできます。保持ルールを使用するには、さまざまな種類のビルドとそのデータをよりよく理解する必要がありますが、柔軟性も高くなります。
基本ルールを設定して一般的なクリーンアップシナリオを構成し、保持する正確なデータを調整するために複数の保持ルールを追加できます。または、キープルールのみに依存してクリーンアップロジックを構成できますが、ベースルールを無効にする前に、すべての重要なデータが保持されることを確認してください。

クリーンアップ中に、TeamCityはベースルールとキープルールを分析および結合して、保存および削除するデータの範囲を決定します。

プロジェクトに割り当てられたクリーンアップルールは、そのすべてのサブプロジェクトとビルド構成によって継承されますが、独自のルールによってオーバーライドできます。次の図は、サンプルプロジェクトA全体にルールがどのように伝播するかを示しています。

Inheritance of clean-up rules

オーバーライドされたルールは、親プロジェクトの階層内で最も近い元の定義にいつでもリセットできます。

基本ルール

単一の基本ルールが各プロジェクトまたはビルド構成に割り当てられます。基本ルールを使用すると、保存するビルドの成功数、および/またはビルドを履歴に保持する期間を定義できます。

基本ルールでは、次のクリーンアップレベルを使用できます。

  • 成果物 : ビルドログを含むすべてのデータが保持されます。非表示のアーティファクトも保持されます。

  • ヒストリー : 統計グラフに表示されるビルド統計値を除き、すべてのビルドデータが削除されます。

  • すべて : TeamCityにはビルドデータは残りません。

各レベルには、その上のリストが含まれます。

デフォルトでは、すべてが永久に保持されます。カスタム設定を選択すると、上記の各レベルで次を指定できます。

  • 日数 :
    指定した日数より古いビルドは、指定したレベルでクリーンアップされます。開始点は、現在の日付ではなく、最後に成功したビルドビルドの日付です。1日は24時間に相当し、暦日ではありません。

  • 成功したビルドの数 :
    最後に一致した正常なビルドより古いビルドのみが、指定されたレベルでクリーンアップされます(保持された正常なビルド間のすべての失敗したビルドが保持されます)。

両方の条件を指定すると、適用されたすべてのルールに従ってクリーンアップする必要があり、保持ルールによって保持されないビルドのみが実際に削除されます。TeamCityは、各ルールに従って保持する最も古いビルドを見つけ、古いビルドをすべてクリーンアップします。見つかった2つのうち最も古いものよりも。
レベルに成功したビルドの数制限が指定されているが、成功したビルドが履歴にない場合、TeamCityはこのレベルのデータをクリーンアップしないことに注意してください。

成果物レベルでは、アーティファクト名のパターンも指定できます。指定されたパターンに一致するアーティファクトは、クリーンアップに含まれるか、クリーンアップから除外されます。Antのようなパターン(英語)の後に改行区切りのルールを使用します。例:

  • 名前の一部として file を使用して成果物をクリーンアップするには、構文 +:**/file*.*を使用します。

  • 名前の一部として file を持つ *.jar アーティファクトをクリーンアップから除外するには、-:**/file*.jarを使用します。

依存関係ビルドの基本ルールの動作

基本ルールの依存関係ブロックでは、依存関係ビルド構成のビルドアーティファクトのクリーンアップ動作オプションを選択することもできます。TeamCityは、他のビルドでスナップショットの依存関係として使用されるビルドを常に保持します。これらのビルドは、依存ビルドが削除されるまで、クリーンアップ手順によってビルド履歴から削除されません。これらのビルドのアーティファクトは、以下のオプションに基づいて削除できます。
TeamCityは、アーティファクトの依存関係によって他のビルドで使用されるビルドとそのアーティファクトをオプションで保持できます。次のオプションを使用できます。

  • デフォルトの使用は、デフォルトのクリーンアップルールで構成されたオプションを使用します。

  • クリーンアップを防ぐは、現在のビルド構成のビルドのアーティファクトまたはスナップショットの依存関係のソースとして使用されたビルド(およびそのアーティファクト)を保護します。

  • クリーンアップを妨げない(デフォルト)は、依存関係ビルドのクリーンアップ関連の処理を、それらが現在のビルド構成のビルドによって使用されるという事実を無視します。

例:依存ビルド構成AはBにアーティファクト依存関係があります。クリーンアップを防ぐオプションがAに使用される場合、Aのビルドのアーティファクトを提供するBのビルドは、ビルドのクリーニング中に処理されないため、ビルドとそのアーティファクト保存されます。

フィーチャーブランチを使用したビルド構成の基本ルールの動作

ビルド構成に複数のブランチからのビルドがある場合、ベースクリーンアップルールを適用する前に、TeamCityはこの構成のビルド履歴を複数のグループに分割します。TeamCityは、アクティブなブランチごとに1つのグループを作成し、非アクティブなブランチからのすべてのビルドに対して1つのグループを作成します。次に、基本クリーンアップルールが各グループに個別に適用されます。

パーソナルビルドの基本ルールの動作

ベースクリーンアップルールは、非個人用ビルドと個人用ビルドに別々に適用されます。つまり、3つの成功したビルドを保持するルールがある場合、3つの非個人ビルドと3つの個人ビルドが(上記の各ブランチグループで)保存されます。

ビルド構成テンプレートの基本ルール

TeamCity 2019.2以前は、ビルド構成テンプレートに基本ルールを割り当てることが可能でした。互換性のために、ビルド構成テンプレートの既存のクリーンアップルールはすべてそのままで、クリーンアップ規則ページでアクセスできます。

ルールを守る

キープルールは、クリーンアップ中に保存する特定のデータを定義します。複数の保持ルールをプロジェクトまたはビルド構成に割り当てることができます。

各保持ルールでは、次の設定を構成できます。

  • 保存するデータを作成する : 履歴、アーティファクト、ログ、統計、またはすべて。

  • アーティファクトを依存関係に保持するかどうか。このオプションは、依存関係ビルド構成のビルドもクリーンアップするかどうかを制御します。このオプションを有効にすると、このルールによって一部のビルドが保持される場合、依存関係ビルドのすべてのアーティファクトも保持されます。このオプションは、基本ルールの依存関係オプションと同様に機能します。

  • ビルド範囲 : ルールの影響を受ける時間間隔または最後のビルドの数。

  • オプションで、状態タグ、およびブランチで保存ビルドをフィルターできます (パターンマッチングを使用したブランチフィルターがサポートされています)。また、ルールを個人ビルドまたは非個人ビルドのみに制限することもできます。

  • 制限を、一致する各ブランチに個別に適用するか、選択したブランチのすべてのビルドに単一のセットとして適用する必要があるかを選択します。
    この条件は、影響を受けるビルド構成ごとに1回適用されます。フィルターでブランチが指定されていない場合、次のように適用されます。ビルド構成内の各ブランチ、またはセットとしてのすべてのビルド構成ブランチのいずれかに適用されます。
    例:最後の10個のビルドの統計を保持することを選択し、このルールに対して2つのブランチを選択した場合、「すべて選択済み」を選択して、選択した両方のブランチの中で10個の最後のビルドを保持するか、「選択された各ブランチ」を選択して20個の最後のビルドを保持することができます。それぞれ10個ブランチの。

TeamCityは、次の順序で保持ルールを処理します。

  1. フィルター影響を受けるプロジェクトのビルドまたはビルド構成。

  2. 選択したすべてのブランチにルールを適用するか、選択した各ブランチのビルドに個別にルールを適用するかを決定します( 説明を参照)。

  3. 指定された範囲でのみビルドを保持します。

  4. 保存するビルドデータのタイプを決定します。

  5. 依存関係ビルドのアーティファクトを保持する必要があるかどうかを決定します。

ルールの保持動作に関する注意事項:

  • 複数のタグを入力すると、これらのタグのいずれかでマークされたすべてのビルドにルールが適用されます。

  • すべての「以来の日...」範囲オプションでは、TeamCityは特定の日付の小数時間を考慮せず、選択した日(深夜から11:59 PMまで)から開始日までの時間間隔で開始したビルドのみにルールを適用します。影響を受ける範囲(選択された日から設定された日数の制限を引いたもの)。

削除されたビルド構成のクリーンアップ

プロジェクトまたはビルド構成が削除されると、削除から5日(432, 000秒)が経過した場合にのみ、対応するビルドデータがクリーンアップ中に削除されます。タイムアウトを変更するには、teamcity.deletedBuildTypes.cleanupTimeout 内部プロパティを必要な秒数に設定して、データが削除されないようにします。

すべてのデータを保持し、クリーンアップ中に影響を受けないビルドがあります。これらは: