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

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


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

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


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

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


使い方は簡単。初回起動時に設定ダイアログが表示されるので、WebSocket サーバーの URL を指定するだけ。

WebSocketNotifier はビルドの成功・失敗関係なく通知してくるので、失敗時のみ表示するオプションをつけてみました。ちなみにこの設定ダイアログは、タスクトレイのアイコンを右クリックすると表示されるメニューから表示できます。実際の通知は下図の通り。

結構いい感じ。