みなさんこんにちは。@ryuzeeです。
Jenkinsから送信されるメールをカスタマイズするにはどうしたら良いでしょうか?
答えはEmail-extプラグイン(https://wiki.jenkins-ci.org/display/JENKINS/Email-ext+plugin)を使うのですが、設定の方法などを書いておくことにします。
Jenkinsが送信するメールをカスタマイズするプラグインで、送信するメールのタイトルや本文、いつ送信するか、誰に送信するか等をカスタマイズすることができます。 またビルド失敗、テスト失敗、ビルドの正常への復帰などの状況に応じて送信するメールを個別にカスタマイズすることが可能です。 2012年1月現在バージョンは2.16です。
これはいつもの通りです。 Jenkinsの管理→プラグインの管理と遷移して、”Jenkins Email Extension Plugin”を選択してインストールします。 もしくはjenkins-cli.jar経由でも同じです。
設定は、各プロジェクト共通の設定と、プロジェクト固有の設定に分けて行います。 なお共通設定を行っていても、各プロジェクト側の設定で値を上書きすることができます。
それぞれの項目について説明します。
なお、Default Recipientsの代わりにメール受信者のデフォルト値を設定するためには、図のようにGlobal propertiesで環境変数を指定します。 この環境変数は ${ENV, var=“default_email”}のように呼び出すことができます。
${BUILD_LOG, maxLines, escapeHtml}
ビルドログ
${BUILD_LOG_REGEX, regex, linesBefore, linesAfter, maxMatches, showTruncatedLines, substText, escapeHtml, matchedLineHtmlStyle}
ビルドログを正規表現で抽出
${BUILD_NUMBER}
ビルド番号
${BUILD_STATUS}
ビルドのステータス(成功、失敗など)
${BUILD_URL}
ビルドのURL
${CHANGES, showPaths, format, pathFormat}
SCMにおける前回の変更からの変更点
${CHANGES_SINCE_LAST_SUCCESS, reverse, format, showPaths, changesFormat, pathFormat}
最後に成功したビルド以降の変更点
${CHANGES_SINCE_LAST_UNSTABLE, reverse, format, showPaths, changesFormat, pathFormat}
最後にビルドが不安定になって以降の変更点
${ENV, var}
環境変数を表示する。${ENV, var="変数名"}と指定する
${FAILED_TESTS}
失敗したテストの情報を表示する
${JENKINS_URL}
JenkinsのURL
${HUDSON_URL}
HudsonのURL。非推奨。
${PROJECT_NAME}
プロジェクト名
${PROJECT_URL}
プロジェクトのURL
${SVN_REVISION}
Subversionのリビジョン番号
${CAUSE}
ビルド失敗の理由
${JELLY_SCRIPT, template}
メールのテンプレートの読み込み。デフォルトでは${JELLY_SCRIPT,template="html"}と${JELLY_SCRIPT,template="text"}が用意されている。自分で作成する場合は、$JENKINS_HOME/email-templatesに配置する。
${FILE, path}
指定したファイルをインクルードする
${TEST_COUNTS, var}
テストの数
${SCRIPT, script, template, init}
JSR223を利用したカスタムメッセージを挿入する。
送信するメールのテンプレートの一例を以下に記載します。 html形式で送信したい場合は、ほとんどの場合トークンをpreタグで囲みつつその他の項目をhtmlで書くか、もしくはJellyでスクリプトを書くかのどちらかになると思われます。
$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
以下のURLを確認してください。
----------------------------------------
$BUILD_URL to view the results.
失敗したテスト
----------------------------------------
${FAILED_TESTS}
前回の成功ビルド以降に更新されたファイル
----------------------------------------
${CHANGES_SINCE_LAST_SUCCESS}
ビルドログ
----------------------------------------
${BUILD_LOG}
次にプロジェクト側の設定を行います。
プロジェクト側の設定も共通設定とほぼ同じですが1点注意で、グローバル受信者リストの箇所にデフォルトで入っている$DEFAULT_RECIPIENTSの値には値が含まれません(仕様)ので、${ENV, var=“default_email”}に置き換えてください。 またDEFAULT_SUBJECTおよびDEFAULT_CONTENTというトークンが利用可能です。 これらの値は共通設定で行ったタイトルおよび本文になります。
この画面の「トリガーを追加」のプルダウンを選択することで、発生したイベントに応じてメールの送信者や本文を定義することができます。 Unstable、Not built、Failure、Fixedあたりでは、送信したいメッセージが変わってくるはずですのでそれぞれ定義します。
以上が終わったら保存して設定は完了です。
実際に送信されるメールの例を以下に載せておきます。
テキストメールの例(上記の本文設定)
HTMLメールの例(本文設定は、${JELLY_SCRIPT,template="html"}
)
本プラグインは大変機能が豊富で、メールに関する色々なカスタマイズができるので、是非試してください。
それでは。