読者です 読者をやめる 読者になる 読者になる

Jenkins の WebSocketNotifier プラグインの Windows クライアントを作ってみた

tool .net

ちょっと前(?)に仕事で Jenkins を導入したとき、Jenkins でビルド失敗時にチーム全員にメールを送るように設定してみました。しかし、誰もメールを見ている気配がない…。まぁ、メーラー起動するの面倒だし仕方ないかな。私もメール見てないし。


ビルド結果の通知は、メールじゃなくて他の方法がよさそうです。そこで目を付けたのが Jenkins の WebSocketNotifier プラグイン。

これでビルド結果を通知し、それをポップアップかなんかで表示すればいいかも。WebSocketNotifer プラグインに対応した Chrome エクステンションがあるみたいですけど、残念ながらうちでは Chrome が使えません。IE マンセー。そもそも、ブラウザ起動しっぱなしの人ってうちにはほとんどいないから無意味か。


仕方ないので、C# で WebSocketNotifier プラグインのクライアントを作成してみました。

最初 WPF で作ろうと思ったんですが、タスクトレイに常駐したり NotifyIcon を使うには WinForms のアセンブリが必要。なら WinForms でいいよね、ってことで久しぶりに WinForms で作成しました。WebSocketClient を一から自作するのは面倒だったので、GitHub で公開されているものを拝借しています。


使い方は簡単。初回起動時に設定ダイアログが表示されるので、WebSocket サーバーの URL を指定するだけ。
f:id:griefworker:20110928194103p:image
WebSocketNotifier はビルドの成功・失敗関係なく通知してくるので、失敗時のみ表示するオプションをつけてみました。ちなみにこの設定ダイアログは、タスクトレイのアイコンを右クリックすると表示されるメニューから表示できます。実際の通知は下図の通り。
f:id:griefworker:20110928194148j:image
結構いい感じ。