Jenkinsの通知機能を試してみる

# 前書き
お仕事で初めてJenkinsおじさんと触れ合う機会ができました。
その中でジョブが失敗した場合にメール、Teamsに通知する機能を試してみたのでご紹介します。

## 通知先
* メール
    * Gmailを利用
* Microsoft Teams（Incoming Webhookを利用）

## 前提条件
* Jenkins 2.323
    * メール通知にはEmail Extension Plugin 2.85を利用
    * Teams通知にはOffice 365 Connector 4.15.2を利用


# メール通知設定
メール通知にはEmail Extension Pluginを利用しますが、基本追加しなくても最初から入っていると思います。
このプラグインが無い場合には「プラグインの管理」から追加して下さい。
メール通知は今回はGmailを使います。

## Gmailの準備
googleアカウントをご準備下さい。
JenkinsからGmailを使ってメールを送信する場合、「安全性の低いアプリの許可」を有効にする必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2392669/5e93027e-a9f3-5a1d-1ff6-039907145685.png)

## Jenkinsのシステムの設定
続いてJenkinsのメール設定を行います。
ダッシュボード➡︎Jenkinsの管理➡︎システムの設定を開きます。
「SMTP server」には「smtp.gmail.com」、「SMTP Port」には「465」、「Use SSL」はチェックONにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2392669/a088ca91-9dc1-3e24-c70b-735110e9d1d5.png)
Credentialsは「追加」を押下し、「ユーザー名」と「パスワード」にGoogleアカウントを入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2392669/c0f9ecb8-88c0-d85b-287b-869c358d5e30.png)
あとは「Default Recipients」に通知したいアドレスを入力すれば完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2392669/f83806bd-2534-6cf9-4997-3c8a6742604d.png)

「Default Triggers」の項目から通知条件を色々と指定する事もできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2392669/dfaeb6f6-6df0-d3b4-f168-d95bec96ec56.png)

## Jenkinsのジョブの設定
通知をしたいジョブの設定画面を開きます。
画面の一番下の「ビルド後の処理」の「ビルド後の処理の追加」プルダウンから「拡張Email通知」を選択します。
「高度な設定」ボタンを押下し、「追加」ボタンを押下して「Recipient List」を選択して下さい。
ジョブが失敗した場合以外に通知をしたい場合は「ADD TRIGGER」から色々な条件を選択する事もできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2392669/6edc186e-8327-e59f-0079-4660727fae0b.png)
以上でメール通知設定は完了です！

# Teamsへの通知
何某かの理由でメール通知が出来なくなった場合に備え、保険としてTeamsへの通知も行う様にしておきます。

## Webhook URLの準備
通知をしたいTeamsのチャンネルにマウスカーソルを合わせて「…」の部分をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2392669/38edec05-491d-36f9-df9d-99d3232661c0.png)
「コネクタ」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2392669/162c429c-3125-dc03-ef53-7945794da0e0.png)
「Incomming Webhook」の「構成」ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2392669/1fb3517a-5f96-06f7-b57a-bb888d7dd6fe.png)
「着信Webフック」には用途に応じた分かり易い名前を入力し、「作成」ボタンを押下します。
イメージの変更はお好みで。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2392669/6aed6bc6-29dc-f45d-2004-c2cbaed3edcb.png)
画面下の「Webhook URL」の部分のURLを後で使うのでコピーしておいて下さい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2392669/037c18b0-3abf-dc6d-c710-0e63d31dc5e1.png)

## JenkinsのOffice 365 Connectorプラグイン追加
Office 365 ConnectorがJenkinsに入っていない場合にはダッシュボード➡︎Jenkinsの管理➡︎プラグインの管理から追加して下さい。

## Jenkinsのジョブの設定
通知をしたいジョブの設定画面を開きます。
「Office 365 Connector」の部分の「ADD WEBHOOK」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2392669/1d32f26e-2bfa-3e0d-dc69-5b0612785bf0.png)
「URL」には先ほどコピーしておいた「Webhook URL」を貼り付けし、「Name」には任意の値を入力します。
拡張Email通知同様、「高度な設定」から通知条件を色々選ぶことが出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2392669/6f1660c1-59d2-eed9-4dfa-2a68b799b653.png)

以上でTeamsへの通知設定は完了です！