JenkinsのHipChat通知

JenkinsからHipChatへの通知が動かなくて、ハマッたので解決メモ

# JenkinsとHipChatの連携設定
## バージョン
- Jenkins ver. 2.32.3
- HipChat 2017/3/19版?

## HipChatの設定
アプリから Integrations を開く
![image](https://qiita-image-store.s3.amazonaws.com/0/120192/8574e5e1-de48-3cfa-c52b-6f887e6e24e4.png)

Install new integrationsを開く
![image](https://qiita-image-store.s3.amazonaws.com/0/120192/0caf1671-4e2b-76e7-74ec-630e3537b1c0.png)

Jenkinsを選択
![image](https://qiita-image-store.s3.amazonaws.com/0/120192/21985dae-7c43-b973-9c77-4b71bda705aa.png)

Tokenが得られるので、この文字列をJenkinsに設定する。（以下で説明します）
![image](https://qiita-image-store.s3.amazonaws.com/0/120192/b39b6e05-ecfd-5e7a-d23a-9f363d43b908.png)

## Jenkinsの設定
### Jenkinsをインストール
(手順は省略)

### HipChatのプラグインをインストール
Jenkinsトップページから、「Jenkinsの管理」を選択
![image](https://qiita-image-store.s3.amazonaws.com/0/120192/f34aaddb-1134-00f9-9237-10e0f4334b5a.png)

プラグインの管理を選択
![image](https://qiita-image-store.s3.amazonaws.com/0/120192/cc4ced33-0e17-81e1-c16b-63bde0da0516.png)

「利用可能」のタブを開き、HipChat Pluginにチェックを入れてインストールする。
![image](https://qiita-image-store.s3.amazonaws.com/0/120192/2f5fb513-3d4d-6bf5-3e6f-558ef11f8f07.png)

### Jenkinsのシステム(共通)設定
Jenkinsの再起動後、
再びJenkinsのトップページより、「システムの設定」を選択
![image](https://qiita-image-store.s3.amazonaws.com/0/120192/3b4ce724-8f6c-de7a-557a-6f9a83eb9507.png)

「Global HipChat Notifier Settings」にてHipChatの設定を行う。
![image](https://qiita-image-store.s3.amazonaws.com/0/120192/ee084bf7-c303-1970-4001-f7a069e5b981.png)

まず、「Use v2 API」にチェックは「入れない」
「Room」にはメッセージを送るHipChatのRoom名を設定する。

次に、Credentialsの「追加」ボタンから、
![image](https://qiita-image-store.s3.amazonaws.com/0/120192/0f820107-1591-e114-dd67-7f2d66ff38f5.png)
「種類」で、「Secret text」を選択
「Secret」に、HipChatで取得したTokenを設定する。
「ID」に任意のIDを入れておく

そして、「Test configuration」ボタンを押して
![image](https://qiita-image-store.s3.amazonaws.com/0/120192/f278d3a7-ea31-ab17-6e10-f30d28c293db.png)
「Test Notification Sent」が表示されたらＯＫ！

### 各プロジェクト(ジョブ)での設定
次に実際のプロジェクト（ジョブ）で、HipChatへの通知設定を行います。
まず、ジョブの「設定」を選択。
![image](https://qiita-image-store.s3.amazonaws.com/0/120192/f6a08fd6-b0a0-2e14-3460-3c5ff01ea756.png)

「ビルド後の処理の追加」から「HipChat Notifications」を選択。
![image](https://qiita-image-store.s3.amazonaws.com/0/120192/b4ef7e6d-d100-de05-b22d-c310a50196d3.png)

「Credentials」「Project Room」はシステム設定が使われるので、ここで設定する必要は無い。
「Notifications」を「追加」して、メッセージを送りたいタイミングや色、メッセージのテンプレートを記載する。
![image](https://qiita-image-store.s3.amazonaws.com/0/120192/b377ff79-9fa1-16ab-5e65-4835f121bd46.png)
「保存」を押して設定終了。

### 動かしてみる
「ビルド手順の追加」で、「Windowsバッチコマンドの実行」を選択。
以下を記述しビルドを実行してみる。

```
echo 'Hello World!'
exit 0
```

以下のメッセージが流れてくれば成功！
![image](https://qiita-image-store.s3.amazonaws.com/0/120192/cfcb7fed-74a2-a88b-9ed7-590cb5efb62c.png)

そして、今度はビルド失敗ケースとして、エラーコードを0以外に変えてみる

```
echo 'Hello World!'
exit 1
```

今度は以下のメッセージが流れてくるはず！
![image](https://qiita-image-store.s3.amazonaws.com/0/120192/fcf46ba0-2a78-9eca-0a60-7e4263db68f1.png)

### 注意
HipChatのToken取得方法によって、Jenkinsの設定が変わるので注意が必要。
実は、これではまった。。。
別の取得方法の場合、
![image](https://qiita-image-store.s3.amazonaws.com/0/120192/a326cd3f-b956-6496-5abb-3e0f45819e9c.png)
HipChatのWebページトップから「インテグレーション」を選択。

さらに左上のIntegrationsを選択。
![image](https://qiita-image-store.s3.amazonaws.com/0/120192/731423d1-e99a-f52c-fa0e-b67b09fa78b1.png)

この先のページからTokenを取得した場合、Jenkinsのジョブ設定で「Use v2 API」にチェックを入れる必要が有る。