通知テンプレートのカスタマイズ
TeamCity ユーザーは、 通知対象のイベントを選択できます。 デフォルトの通知メッセージは、サーバーごとにグローバルにカスタマイズできます。
「プロジェクトのユーザー / グループ通知ルールを変更する 」権限が有効になっているプロジェクト管理者は、プロジェクトに割り当てられたユーザーおよびユーザーグループの通知ルールを編集できます。
通知のライフサイクル
TeamCity は、ユーザー通知 (ビルドの失敗、調査状態の変更など) を生成できるイベントの設定をサポートしています。 イベント発生時に、通知機能の種類ごとに、TeamCity はすべてのユーザーの通知設定を処理して、通知するユーザーを決定します。
ユーザーの集合が決定されると、TeamCity は通知モデル (通知に関連するオブジェクト。「ビルド」、調査データなど) に値を設定し、通知イベントに対応する通知テンプレートを評価します。
テンプレートはデータモデルオブジェクトを使用して出力値 (たとえば通知メッセージテキスト) を生成します。 出力値はその後、通知機能がメッセージを送信するために使用されます。 各通知機能は、特定の出力値設定をサポートしています。
テンプレートはイベントに対して 1 回評価されるため、通知プロパティはユーザーごとに調整できないことに注意してください。
次に、テンプレートによって定義された出力値は、選択したユーザーにアラートを送信するために通知機能によって使用されます。
通知テンプレートのカスタマイズ
通知テンプレートの場所
バンドルされた各 通知機能には、 <TeamCity データディレクトリ>/config/_notifications/ にディレクトリがあり、そこに FreeMarker(英語) (FTL) テンプレートが格納されます。 また、デフォルトのテンプレートを格納する 配布版 ファイルもあります。 各通知タイプは、対応する名前のテンプレートファイルを評価します。 テンプレートファイルは、サーバーの実行中に変更できます。
デフォルトでは、サーバーは 60 秒ごとにファイルの変更をチェックしますが、 TeamCity 通知テンプレートの更新間隔 内部プロパティを必要な秒数に設定することでこれを変更できます。
テンプレートの評価中にエラーが発生した場合、TeamCity はエラーの詳細を TeamCity 通知ログ にログ記録します。 テンプレートの一部を無視する重大でないエラー、または通知をまったく送信できない重大なエラーが存在する可能性があります。 通知テンプレートを変更するたびに、通知を送信できることを確認してください。
このドキュメントでは FreeMarker テンプレート言語について説明していないため、FreeMarker 構文のガイダンスが必要な場合は、対応する テンプレートのマニュアル(英語)を参照してください。
サポートされる出力値
TeamCity 通知機能はテンプレートを使用して出力値 (グローバルテンプレート変数) を評価し、その値はお名前で取得されます。 次の出力値がサポートされています。
メール通知機能
件名 — 送信するメールメッセージの件名
本文 — 送信するメールメッセージのプレーンテキスト
本文 HTML — (オプション) 送信するメールメッセージの HTML テキスト。 メッセージのプレーンテキスト部分と一緒に含まれます。 ただし、テンプレート内に存在する場合は、これもカスタマイズする必要があります。
ヘッダー — (オプション) メールに含める追加ヘッダーの生のリスト。 1 行に 1 つのヘッダー。 例:
IDE 通知 および Windows トレイ通知
メッセージ — 送信するメッセージのプレーンテキスト
リンク — イベントに関する詳細情報を含む TeamCity ページの URL
カスタマイズ例
このセクションでは、通知のカスタマイズに使用できる Freemarker コードスニペットを提供します。
ログのエラーを含める
以下の例は、 ビルド失敗テンプレート テンプレートに含まれるスニペットを示しています: エラーは、メールのプレーンテキストと html 部分の両方にリストされます。
ビルドアーティファクトの一覧表示
現時点では、メールテンプレートにビルドアーティファクトを一覧表示するデフォルトの方法はありません。 関連する API を介してアーティファクトを一覧表示できるシンプルなプラグインの 関連する問題(英語)を参照してください。
現在の回避策
これは、テンプレートからディスクへの直接アクセスを想定し、外部アーティファクトストレージ(S3 など)とアーティファクトブラウズポリシー(内部アーティファクトを表示しない)を無視します。 また、この方法は、将来の TeamCity バージョンで非推奨になる可能性があります。
これにより、ルートアーティファクトのみが一覧表示され、 .teamcity ディレクトリが含まれます。このディレクトリはコードの変更によって変更できます。
ビルドパラメーターの一覧表示
これにより、サーバーからビルドに渡されるパラメーターがリストされます。
デフォルトデータモデル
テンプレートの評価用に、TeamCity はテンプレート内で使用できるデフォルトデータモデルを提供します。 モデルで Exposed されるオブジェクトは、 TeamCity サーバー側オープン API の対応するクラスのインスタンスです。
使用可能なモデルオブジェクトの設定は、イベントによって異なります。プラグインを使用して、独自のオブジェクトをモデルに追加することもできます。 詳細については、 通知テンプレートモデルの拡張) を参照してください。
モデルの説明例を以下に示します (このコードは、IntelliJ IDEA で補完を使ってテンプレートを編集するために使用できます)。 以下に示すすべてのエンティティがどのテンプレートでも利用できるわけではありません。たとえば、すべてのテスト責任はプロジェクトスコープで割り当てられ、テスト責任に関する通知は、調査が割り当てられたプロジェクト (ビルド構成ではなく) を指すように構成できます。
TeamCity 通知プロパティ
次の プロパティは、通知の動作をカスタマイズできます。
TeamCity 通知テンプレートの更新間隔— テンプレートがシステムによって再読み取りされる頻度 (整数、秒単位、デフォルトは 60)TeamCity 通知にデバッグ情報を含める— テンプレート処理エラーの場合にメッセージにデバッグ情報を含める (ブール値、デフォルトは false)TeamCity 通知の変更最大数— メールメッセージにリストする変更の最大数 (整数、デフォルトは 10)TeamCity 通知のコンパイルデータ最大サイズ— メールメッセージに含めるコンパイルエラーデータの最大サイズ(バイト単位) (整数、デフォルト 20480)TeamCity 通知の失敗したテスト最大数— メールメッセージにリストする失敗したテストの最大数 (整数、デフォルト 50)TeamCity 通知の失敗したテストスタックトレース最大数— メールメッセージ内のテストスタックトレースの最大数 (整数、デフォルト 5)TeamCity 通知の失敗したテストデータ最大サイズ属性値を保持します。以前の設定を維持し、新しい値を生成しません。重要: 元の入力の ID を正確に保持します。ランダムな値を生成しません。すすすす— 単一のメールメッセージに含める失敗したテスト出力データの最大サイズ(バイト単位) (整数、デフォルト 10240)