Jenkinsのビルド結果をリアルタイム通知するプラグイン『Jenkins Websocket Notifier』を作りました
追記: 公式プラグインになりました。Websocket Plugin - Jenkins - Jenkins Wiki
「pollingが許されるのは小学生までだよねー キモーイ キャハハハハハハ」というわけでビルド結果をpush通知するJenkinsプラグインを書きました。
特徴
- Jenkinsのビルド結果をWebsocketを使って通知します。
- モダンなブラウザはWebsocketに対応しているので、Javascriptで簡単に通知を受け取れます。
- Websocketはプラットフォームに依存しないプロトコルなので、Javascript以外でも通知を受け取れます。
インストール方法
設定方法
Jenkins の管理 > システムの設定 > Websocket Notifier で Websocketサーバを起動するポート番号を指定します。
(プロジェクト名) > 設定 > ビルド後の処理 でWebsocket Notifierのチェックボックスをオンにします。
利用例 その1: Chromeエクステンション
Jenkins のビルド結果を通知する Chrome エクステンション作った - mallowlabsの備忘録 を改造して、Websocket Notifierに対応させました。 使い方・機能は変っていませんが、通知速度が格段にあがっています。
パッチはすでに本体に取り込まれているので、インストール方法等はリンク先を参照してください。
利用例 その2: iPad/iPhoneのXFD化
WebsocketはJavascriptで簡単に扱えるので、ビルド結果によって背景色を切り替えるWebページも簡単に作れます。これをiPad/iPhoneで表示すれば、iPad/iPhoneテスト結果を通知するXFD(eXtream Feedback Device)として利用できます。
<html> <body bgcolor="red" id="bg"> <script> var elem = document.getElementById('bg'); var ws = new WebSocket('ws://localhost:8081/jenkins'); ws.onmessage = function(msg) { eval('var obj = ' + msg.data); if(obj.result == 'SUCCESS'){ elem.bgColor = 'green'; }else{ elem.bgColor = 'red'; } }; </script> </body> </html>
利用例 その3:ダンボーのXFD化
上記の応用でビルド結果に応じてダンボーの目の色を変えることができます。
ダンボー本体はよつばとリボルテック リボルテックダンボーを、目の色の制御にはArduinoをはじめようキットを使っています。 目には大須で買ってきたフルカラーLEDを仕込んでいます。
技術的な話
お礼
- Jenkins起動時にWebsocketサーバを起動する方法はid:kyon_mmさん、川口さんにいろいろと教えていただきました。 ありがとうございます。 参考: Jenkins勉強会、DevLOVEに参加してきました - うさぎ組
- ダンボーをXFD化するアイデアは Scala Group / 株式会社スカラコミュニケーションズ にインパイアされています。また制御回路はblog.8-p.info を参考にしました。 ありがとうございます。