Hatena::ブログ(Diary)

みずぴー日記 Twitter

2011-06-12(日)

Jenkinsのビルド結果をリアルタイム通知するプラグイン『Jenkins Websocket Notifier』を作りました

Jenkinsのビルド結果をリアルタイム通知するプラグイン『Jenkins Websocket Notifier』を作りましたを含むブックマーク

追記: 公式プラグインになりました。Websocket Plugin - Jenkins - Jenkins Wiki

f:id:mzp:20110612204327j:image

「pollingが許されるのは小学生までだよねー キモーイ キャハハハハハハ」というわけでビルド結果をpush通知するJenkinsプラグインを書きました。

特徴

インストール方法

  1. https://github.com/mzp/unageel/archives/master からwsnotifier.hpiダウンロードする。
  2. wsnotifier.hpiをJenkins の管理 > プラグインの管理 > 高度な設定 > プラグインアップロード からアップロードする。
  3. Jenkins の管理 > プラグインの管理からWebsocket Pluginをインストールする。
  4. Jenkinsを再起動する。

設定方法

Jenkins の管理 > システムの設定 > Websocket Notifier で Websocketサーバを起動するポート番号を指定します。

f:id:mzp:20110612204332p:image

(プロジェクト名) > 設定 > ビルド後の処理 でWebsocket Notifierのチェックボックスをオンにします。

f:id:mzp:20110612204331p:image

利用例 その1: Chromeエクステンション

f:id:mzp:20110612204330p:image

Jenkins のビルド結果を通知する Chrome エクステンション作った - mallowlabsの備忘録 を改造して、Websocket Notifierに対応させました。 使い方・機能は変っていませんが、通知速度が格段にあがっています。

パッチはすでに本体に取り込まれているので、インストール方法等はリンク先を参照してください。

利用例 その2: iPad/iPhoneのXFD化

f:id:mzp:20110612204326j:image

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>

http://github.com/mzp/unageel/blob/master/xfd.html

利用例 その3:ダンボーのXFD化

f:id:mzp:20110612204327j:image

上記の応用でビルド結果に応じてダンボーの目の色を変えることができます。

ダンボー本体はよつばとリボルテック リボルテックダンボーを、目の色の制御にはArduinoをはじめようキットを使っています。 目には大須で買ってきたフルカラーLEDを仕込んでいます。

技術的な話

  • ws://localhost:8081/jenkins に接続するとJSON形式でビルド結果が飛んできます。
  • ポート番号は設定によって変更可能です。
  • ビルド結果は{ "name" : "test", "result" : "success", "number" : 1 }のような形式です。

お礼

kkawakkawa 2011/06/13 10:31 これは素晴らしい!
ぜひJenkinsコミュニティのリポジトリでホストして、公式アップデートセンターに公開しませんか?お手伝いさせていただきます。

よつばよつば 2011/07/29 21:56 ダンボーかわいいですね^^
手先が器用だったらこうゆうのが作れるのになぁ・・・

リンク元