2013/12/25

JenkinsからSSP (伺か) を操作するプラグインをつくってみた

この記事はJenkins CI Advent Calendar 2013の25日目のエントリーです。

Jenkinsでビルドに失敗するたびにおっさんに怒ってもらえたりしたら最高ですよね!

というわけで、それを実現するプラグインを試しに作ってみました。

デスクトップマスコットアプリであるSSP (伺か) はテキストベースの独自プロトコルであるSSTPを介することで、キャラクタを操作することができますので、このプラグインではSSTPを用いてキャラクタをしゃべらせるようにしています。

「SSPって何?」という人や「SSPにJenkinsさんを導入していない」という人は本ブログの以前の記事「MacでSSP (伺か) のJenkinsゴーストを使う」を参考にしてください。

利用の様子

サンプル的なプラグインなので、ビルド開始時と終了時にメッセージを出すだけです。ビルドに失敗したときのおっさんの表情にも注目。

プラグインの導入方法

公に晒せるレベルには達していないので、Dropboxにバイナリを置いています。 次のURLからssp-notification.hpiをダウンロードして、$JENKINS_HOME/pluginsに入れてください。

ソースコードからビルドする方は次のURLから取得してください。

プラグイン作成過程

雛形を作るためのチュートリアルPlugin tutorialとかありますが、自分が作りたいものに近いプラグインを加工するほうが早いみたいです。

今回はNotification Pluginをベースにしました。

このプラグインは、ビルドの開始や終了のタイミングで、指定先にJSONかXMLデータを送信するものです。プロトコルはTCP/UDP/HTTPが使えます。

SSPではプロトコルはTCPでよく、送信データは独自プロトコルであるSSTPなので、基本的にやったことはFormat.javaSSTPをハードコーディングで追加しただけです。

プラグインの課題など

  • ハードコーディングなのでカスタマイズ性ゼロ
  • 時おりメッセージが文字化けする (原因不明)
  • 国際化

自分でビルドする

次の手順で行います。

なお、JDKとmavenは導入済みとします。

$ git clone https://github.com/safx/notification-plugin.git
$ cd notification-plugin
$ mvn package
$ mv target/ssp-notification.hpi $JENKINS_HOME/plugins

おわりに

SSP Notificationプラグインを紹介しました。

改変は簡単だと思いますので、いいように修正してください。もっとネタっぽく動くといいですね。

拡張性を持たせた形でつくるにはどうするのがよいのかわからなかったので、そこらへんも手を入れていただけると幸いです。

関連リンク

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。