TeamCity 2020.2 ヘルプ

ビルドの失敗条件

TeamCity では、ビルドが失敗としてマークされる条件を変更できます。これらのビルドの失敗条件は、ビルド設定 | 失敗条件で調整できます。

一般的なビルド失敗条件

一般的な障害状態ブロックでは、TeamCity がビルドに失敗する正確な方法を指定できます。

  • 実行時間が... 分より長い場合:ビルドの実行タイムアウトを有効にするには、値を分単位で入力します。指定された時間を超えると、ビルドは自動的にキャンセルされます。
    • 0 に設定しない限り、このビルド構成設定は、管理 | グローバル設定で指定された server-wide デフォルト実行タイムアウトをオーバーライドします。

    • デフォルト値の 0 は、ビルド構成によって制限が設定されないことを意味します。server-wide のデフォルトの実行タイムアウトがある場合、このデフォルトが使用されます。
      このオプションは、ハングしているビルドを処理し、エージェントの効率を維持できます。

  • ビルドプロセスの終了コードがゼロでない場合:ビルドプロセスが正常に終了しない場合は、ビルドを失敗としてマークします。

  • 少なくとも 1 つのテストが失敗した場合:ビルドが少なくとも 1 つのテストに失敗した場合、ビルドを失敗としてマークします。このオプションを無効にすると、いくつかのテストに合格しなかった場合でも、ビルドに成功のマークを付けることができます。このオプションに関係なく、TeamCity はすべてのビルドステップを実行します。
    • テストの再試行をサポート:テストの実行が成功すると、以前のテストの失敗がミュートされます–有効にすると、TeamCity は、失敗した場合にテストをミュートし、同じビルド内で成功します。このようなテストは、ビルドステータスには影響しません。これは、同じソースリビジョンに適用すると、失敗と成功が交互に繰り返される不安定なテストを含む構成に便利です。

  • ビルドランナーによってエラーメッセージがログに記録される場合ビルドランナーがビルド中にエラーを報告した場合は、ビルドを失敗としてマークします。

  • メモリ不足の問題またはクラッシュが検出された場合(Java のみ):JVM のクラッシュが検出された場合、または Java にメモリ不足の問題がある場合は、ビルドを失敗としてマークします。可能であれば、TeamCity はそのようなビルドのアーティファクトとしてクラッシュログとメモリダンプをアップロードします。

追加の障害条件

メトリック(コードカバレッジやアーティファクトサイズなど)の一部が別のビルドと比較して変更されている場合、ビルドを失敗としてマークするように TeamCity に指示できます。たとえば、コードの重複数が前のビルドよりも多い場合、ビルドに失敗のマークを付けることができます。

別のビルド失敗条件により、ビルドログに特定のテキストが存在する場合、TeamCity はビルドを失敗としてマークします。

このような障害状態を追加するには、ビルド失敗条件を追加をクリックしてリストから選択します。

メトリックの変更で失敗する

ビルドでコードカバレッジ、重複ファインダー、インスペクションなどのコードインスペクションツールを使用すると、さまざまな数値メトリックが生成されます。これらのメトリックについて、しきい値を指定できます。しきい値を超えると、ビルドが失敗します。

一般に、このビルド失敗条件を構成するには 2 つの方法があります。

  • ビルドメトリックは、指定された定数値(しきい値)を超えるか、または下回っています。
    例:定数値と比較して、「ビルド期間(秒)」が「 300より「多い」場合ビルドに失敗します。
    この場合、ビルドが 300 秒を超えて実行されると、ビルドは失敗します。

  • ビルドメトリックは、特定のビルドと比較して、指定された値で変更されました。
    例:別のビルドの値と比較した「ビルド期間(秒)」が、「最後に成功したビルド」の値よりも、このメトリックのデフォルトの単位が「 300以上ある 場合ビルドに失敗します。
    この場合、最後に成功したビルドより 300 秒長く実行すると、ビルドは失敗します。ブランチ仕様が構成されている場合、次のロジックが適用されます。

次のビルドの値は、ビルドメトリックを比較するための基準として使用できます。

  • 最後に成功したビルド

  • 最後の固定ビルド

  • 最後に完成したビルド

  • 指定されたビルド番号でビルドする

  • 指定されたタグでビルドを最後に終了しました。

デフォルトでは、TeamCity は幅広いビルドメトリックを提供します

  • アーティファクトサイズ(バイト)– .teamcity ディレクトリ下の内部アーティファクトを除く、アーティファクトのサイズ

  • ビルド期間 (秒)

  • クラスの数

  • 複製されたコードの数

  • 対象クラスの数

  • カバーラインの数

  • カバーされるメソッドの数

  • 失敗したテストの数

  • 無視されたテストの数

  • インスペクションエラーの数

  • インスペクション警告の数

  • コードの行数

  • メソッドの数

  • 合格したテストの数

  • テスト数

  • ブロックカバレッジの割合

  • クラスカバレッジの割合

  • 回線カバレッジの割合

  • メソッドカバレッジの割合

  • ステートメントカバレッジの割合

  • テスト時間 (秒)

  • アーティファクトの合計サイズ(バイト)–内部のアーティファクトを含むすべてのアーティファクトのサイズ

TeamCity 9.0 以降、TeamCity がテストをカウントする方法が変更されている(英語)ことに注意してください。

カスタムビルドメトリックの追加

独自のビルド指標を追加できます。そのためには、TeamCity 構成ファイル <TeamCity_Data_Directory>/config/main-config.xml を変更し、server ノードに次のセクションを追加する必要があります。

<build-metrics> <statisticValue key="myMetric" description="build metric for number of files"/> </build-metrics>

ビルドで myMetric 値を公開する場合、ビルド失敗の基準として使用できます。

ビルドログの特定のテキストでビルドを失敗する

TeamCity は、ビルドログのすべての行をインスペクションして、ビルドの失敗を示す特定のテキストの発生を確認できます。行を照合する場合、各ログメッセージの前にある時間とブロック名のプレフィックスは無視されます。

このビルド失敗条件を構成するには、次を指定します。

  • ビルドログの存在 / 不在がビルド失敗のインジケータである文字列または Java 正規表現 (英語)

  • この状態が原因でビルドが失敗したときに、ビルド結果ページに表示される失敗メッセージ。

ビルドをすぐに停止する

ビルドログで指定されたテキストが検出されたとき、またはメトリック変更条件でのビルド失敗を使用して指定された特定のビルドメトリックを超えたときに、ビルドをすぐに停止できます。