JenkinsとHipChatの通知連携方法
最近、自社主催の勉強会で、クックパッドさんやfreeeさんなど、技術力の高いWeb企業さんの開発スタイルを聞く機会が立て続けにありました。その中で、HipChatに各種ツールの通知を集約している企業さんが多く、「便利そう」というのと、「やばい!取り残される!」という焦りから、ランサーズでも導入してみました。
HipChatの導入
アカウント開設は簡単で、普通のWebサービスと同様にできました。30日間、5アカウントまでのフリートライアルプランがあります。
ブラウザ版以外にも、デスクトップアプリ、スマホアプリなどなどプラットフォーム対応は充実しています。
Jenkinsとの連携
ざっくりしたフローは以下のとおりです。10分もあれば完了します。
- Jenkins側でプラグインを入れる
- HipChatでトークンを発行
- Jenkins側でトークンの設定
- 通知対象のジョブで通知設定
Jenkinsにプラグインを入れる
Jenkinsの管理 > プラグインの管理 から、フィルターでhipchatを検索
2つ引っかかるのですが、説明が「This plugin is a HipChat notifier that can publish build status to HipChat rooms. 」となっている方を選択します。
HipChatでトークンを発行する
HipChat側で、Group admin > API を選択し、Lavelを適当に入力してCreateをクリックするとトークンを生成できます。(ここから直接、生成ページにいけます)
Jenkinsでトークンを設定
Jenkinsの管理 > システム管理 に移動し、Global HipChat Notifier Settingsにトークン等の情報を入力します。Roomは適当でいいっぽいです。
Jenkinsで通知対象のジョブの設定を変更
通知対象のジョブの設定ページに移動し、HipChat NotificationsのStart Notificationにチェックを入れることで、ジョブ実行時に通知を飛ばすことができます。
ジョブ実行結果を通知するには、同じページの下部になる「ビルド後の処理の通知」からHipChat Notificationsを選択します。こちら選択するだけで大丈夫です。
ジョブを実行→通知
ジョブを実行すると、HipChatに通知されました。最初なぜか失敗したけど、開始と終了がちゃんと通知されてきました。OpenのリンクからJenkinsに飛べるのも便利です。
今後は、New Relicのアラートとか色々なツールと連携したり、ルームを分けて効率的な管理ができるようにいじってみようと思います。