よりわかりやすいJenkinsメールを目指して
Jenkinsが飛ばすメールを整理して
ユーザーが今すぐやらなければいけない問題が発生したのか
後でやればいいものなのか、メールで問題解決への足がかりは得られたのかを重視したメールを目指した際のメモです。
入れておいたほうが良いプラグイン
失敗や成功時にメールの内容を変えたりしたい、ビルドログ等をメール内容に自動で記載して欲しい等といった場合は
Ext-Emailというプラグインを入れるとその辺の機能をJenkinsに追加してくれます。
Email Extension Plugin
基本的な考え方
- メールソフトで機械的にグループしやすいもの
- 問題の緊急度 【緊急】>【重要】>【なるべく】>【後で】を明確にする
- 中身については、失敗したジョブの案内、コミット履歴、ログパーサへのリンク、ビルドログを載せる
サブジェクト
- メール分配用に先頭に【$(ProjectName)_執事】タグを入れる
- 緊急度をJIRAを例に指定 【緊急】【重要】【なるべく】【あとで】
- 成功か失敗か別の物なのかを指定 【成功】【失敗】【警告】【定期報告】
- 補足
といった形にします。
サブジェクトの例をいくつか提示
優先度:緊急 ステータス:失敗 補足:x64Developビルド
【$(ProjectName)執事】【緊急】【失敗】x64Developビルドに失敗しました
優先度:重要 ステータス:失敗 補足:3Dモデルのエクスポート
【$(ProjectName)執事】【重要】【失敗】3Dモデルのエクスポートに失敗しました
優先度:なるべく ステータス:警告 補足:CppCheckの確認が必要
【$(ProjectName)執事】【なるべく】【警告】CppCheckのエラーが発生しました、確認をお願いします
優先度:あとで ステータス:定期報告 補足:掃除
【$(ProjectName)執事】【あとで】【定期報告】掃除日です。
本文
ビルドや自動テストなどの内容はログパーサプラグインで分割して見やすくしているので
ジョブのページではなくログパーサプラグインが出力したページへのリンクを張り
受信者が問題の確認を1手でも短くできるようにします。
※CppCheckPluginなどが生成したページがあるならそのページへのリンクを張る。
本文の例をいくつか提示します。
[ログパーサページがあるJobからのメール本文]
$PROJECT_NAME
${BUILD_URL}parsed_console/
前回の成功ビルド以降に更新されたファイル
==============================
${CHANGES_SINCE_LAST_SUCCESS}
ビルドログ
==============================
${BUILD_LOG}
[ログパーサページが無いJobからのメール本文]
$PROJECT_NAME
${BUILD_URL}console/
前回の成功ビルド以降に更新されたファイル
==============================
${CHANGES_SINCE_LAST_SUCCESS}
ビルドログ
==============================
${BUILD_LOG}
[CppCheckPluginを利用したJobからのメール本文]
$PROJECT_NAME
${BUILD_URL}cppcheckResult/
前回の成功ビルド以降に更新されたファイル
==============================
${CHANGES_SINCE_LAST_SUCCESS}
ビルドログ
==============================
${BUILD_LOG}