【Jenkinsに入門してみた】ビルド結果の通知設定
投稿日: / 更新日:
この記事は2年以上前に書かれたものです。情報が古い可能性があります。
前回、Jenkinsでビルドまで行うことができました。今回は、そのビルド結果をメールで通知するための設定を行ってみます。
1.ビルド結果の通知設定
ダッシュボードの左ペインにある「Jenkinsの管理」をクリックし、管理メニューの一番上の”システムの設定”をクリックします。Jenkinsの全体的な設定を行う画面に遷移しますが、こちらでメール通知の設定が行えます。
まず、「Jenkinsの位置」セクションで、JenkinsのURLと管理者のメールアドレスを設定します。私の環境では、以下のように設定しました。
次に、ページの一番下の方にある「E-mail通知」セクションで、メール通知の設定を行います。今回はお手軽な動作確認ということで、ローカル配送の設定にしています(送られたメールは、端末上でmailコマンドで読むことになります)。「メールを送信して設定を確認」にチェックを入れ、「テストメールの宛先」にメールアドレスを入力して”設定を確認”をクリックすると、そのメールアドレス宛てにテストメールが送信されます。これで、SMTPサーバやE-mailのサフィックスの設定が正しいかどうかを確認することができます。
設定と確認が済んだら、今度はジョブ側でメール通知の設定を行います。ダッシュボードでジョブ名をクリックし、左ペインの「設定」をクリックします。ジョブを新規に作成した時のと同じ画面が表示されますので、一番下の「ビルド後の処理」セクションで”ビルド後の処理の追加”をクリックし、メニューから”E-mail通知”を選択します。宛先にメールアドレスを入力し、画面下部の”保存”をクリックすれば設定完了です。
それでは、動作確認を行ってみます。まず、ソースコードを少し修正し、ビルドが失敗するようにしてリポジトリへコミットします(操作内容は省略します)。
少し待つと、Jenkinsのダッシュボード上にビルド失敗が表示されました。メールが届いているか確認します。端末でログインしてmail
コマンドで確認すると、期待どおりメールが届いていました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
From: root@localhost.localdomain To: root@localhost.localdomain Subject: Jenkinsのビルドが失敗しました: hello_job #4 (省略) 変更履歴: [root] still exists syntax error ------------------------------------------ SCMのポーリングが実行 ビルドします。 ワークスペース: <http://192.168.xxx.xxx:8080/job/hello_job/ws/> > git rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url ssh://root@192.168.xxx.xxx/var/lib/git/testrepo/ # timeout=10 Fetching upstream changes from ssh://root@192.168.xxx.xxx/var/lib/git/testrepo/ > git --version # timeout=10 using GIT_ASKPASS to set credentials > git fetch --tags --progress ssh://root@192.168.xxx.xxx/var/lib/git/testrepo/ + refs/heads/*:refs/remotes/origin/* > git rev-parse refs/remotes/origin/master^{commit} # timeout=10 > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10 Checking out Revision 0d1bc202b268d9a7a28594309f6ea93134fad3c4 (refs/remotes/ori gin/master) > git config core.sparsecheckout # timeout=10 > git checkout -f 0d1bc202b268d9a7a28594309f6ea93134fad3c4 > git rev-list ef59592f54a85af12a9437d39e661b1a42df7f45 # timeout=10 [hello_job] $ /bin/sh -xe /tmp/jenkins1485844409737611259.sh + javac Hello.java Hello.java:3: エラー: ';'がありません System.out.println("Hello, World") ^ エラー1個 Build step 'シェルの実行' marked build as failure |
メール通知が正常に動作していることが確認できました。
2.番外編
Jenkinsでは、ビルド失敗から成功に転じた際にもメール通知が送信されるようになっていますので、ついでに動作確認してみましょう。ソースコードの文法エラーを修正して再度コミットし、リポジトリへpushします。少し待ち、Jenkinsのダッシュボード上にビルド成功が表示されたことを確認して、再びmail
コマンドで確認すると、期待どおりメールが届いていました。
1 2 3 4 5 |
From: root@localhost.localdomain To: root@localhost.localdomain Subject: Jenkinsのビルドが正常に戻りました: hello_job #5 (省略) |
以上で、ビルド結果の通知設定と動作確認ができました。なお、メール以外にもIRCやSlackで通知したり、TracやRedmineといったインシデント管理システムにチケットを自動的に登録したりすることもできます。今後機会があれば、そういった活用方法もご紹介したいと思います。