TeamCity 2019.2ヘルプ

ビルドの失敗条件

TeamCityでは、ビルド設定ページの故障状態セクションでビルドを失敗としてマークする条件を調整できます。
ビルドのために十分なディスク容量を解放できない場合にビルドを失敗させるには、空きディスク容量ビルド機能を参照してください。

このページで:

一般的なビルド失敗条件

「一般的な障害条件」で、ビルド失敗エリアから適切なオプションを選択して、TeamCityがビルドを失敗する方法を指定します。

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

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

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

  • 少なくとも1つのテストに失敗しました :ビルドが少なくとも1つのテストに失敗した場合、このオプションをオンにしてビルドを失敗としてマークします。このオプションをオフにすると、多くのテストに合格しなかった場合でも、ビルドに成功のマークを付けることができます。このオプションに関係なく、TeamCityはすべてのビルドステップを実行します。

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

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

追加の障害条件

TeamCityに、コードカバレッジ、アーティファクトサイズなど、他のビルドと比較してメトリックの一部が悪化した場合、ビルドを失敗としてマークするように指示できます。たとえば、コードの重複数が前のビルドよりも大きい場合、ビルドを失敗としてマークできます。

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

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

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

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

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

  • ビルドメトリックが、指定された定数値(しきい値)を超えているか、それより小さい。
    例:ビルド失敗 build duration (secs) は定数値と比較して 300より more です。この場合、300秒以上実行するとビルドは失敗します。

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

以下のビルドからの値は、ビルドメティックを比較するための基礎として使用できます。

  • 最後に成功したビルド

  • 最後の固定ビルド

  • 最後に完成したビルド

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

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

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

  • artifacts size(bytes)- .teamcity ディレクトリーの内部成果物を除く成果物のサイズ

  • ビルド期間 (秒)

  • クラスの数

  • 複製されたコードの数

  • 対象クラスの数

  • カバーラインの数

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

  • 失敗したテストの数

  • 無視されたテストの数

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

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

  • コードの行数

  • メソッドの数

  • 合格したテストの数

  • テスト数

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

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

  • 回線カバレッジの割合

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

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

  • テスト時間 (秒)

  • 成果物の合計サイズ(バイト)- 内部成果物を含むすべての成果物のサイズ

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

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

独自のビルドメトリックを追加できます。そのためには、TeamCity構成ファイル <TeamCity Data Directory>/config/main-config.xml を変更し、「サーバー」ノードに次のセクションを追加する必要があります。

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

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

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

TeamCityは、ビルドの失敗を示す特定のテキストの出現について、ビルドログのすべての行をインスペクションできます。行は、ビルドログ表現の各メッセージの前にある時間とブロック名のプレフィックスなしで一致します。

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

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

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

ビルドをすぐに停止する

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