Jenkins のジョブ実行結果をメール送信する : Email-Ext-Plugin

Jenkins ジョブから、ジョブの実行結果などをメール送信できる、Email-ext-plugin というモノがあるので使ってみる。

プラグインのインストールは管理画面よりいつもどおり。

プラグインがインストールできると、「システムの設定」画面に「拡張E-mail通知」という項目が登場する。ココで SMTP サーバを指定したり、デフォルトの送り主 (Default Recipients)、送信先 (Reply To List)、件名、本文などを指定できる。

ジョブ設定画面の「ビルド後の処理」の中にも「拡張 E-mail 通知」というメニューが登場し、ココでジョブごとにメール送信の設定ができる。

メールの件名や本文では、「シェルスクリプトの実行」などと同じように環境変数を参照できる。env-vars.html で確認できる $BUILD_URL などの環境変数はもちろん、Build Timestamp Plugin を入れていれば、$BUILD_TIMESTAMP 環境変数なども使えるので、「何時何分に実行したどのジョブで結果がどうだった」といった内容がメールに記述できる。

本文には任意のテキストファイルの内容を貼り付けることもできるので、コマンドやシェルスクリプトの実行結果などをファイルに出力しておき、その内容をメールに貼り付けたりもできる。

# 何かやりたいコマンド
$ npm test > results.txt
$BUILD_TIMESTAMP に実行された $JOB_NAME の実行結果を自動送信します。

${FILE,path="./results.txt"}

詳細はジョブのコンソールを確認してください。
$BUILD_URL

このように、${FILE,path="【パス】"} という構文でファイルが読み込める。

また、設定項目の中に「Triggers」という項目があり、ココで「Unstable (Test Failures)」を選べば、Unstable な結果の時にだけメール送信をしたりできる。

以前紹介した TextFinder plugin・「Jenkins 文字列検索」を利用して、「検出時に不安定扱いにする」設定を入れておき、その後で「Unstable (Test Failures)」な Trigger の時にメール送信するようにすれば、単純なジョブの成功時・失敗時は何もせず、特殊な状況の時のみメール送信したりもできる。

ChatOps とか云われている時代でも、まだまだメール送信した方が有用なこともあるだろうから、覚えておいて損はないだろう。