フューチャーホームコントローラーをJenkinsのXFDとして使う
はじめに
フューチャーホームコントローラー(FHC)には音声合成の機能があり、WebAPIで喋らせることができます。そこで、Jenkinsのビルド結果をわかりやすく知らせるXFD (eXtreme Feedback Device) として使ってみます。
JenkinsにはSpeaks!プラグインとか普通にあるので、どこからがExtremeかいまいち判断がつかないのですが、喋るのってなんだかExtremeだと思います。
Speaks!プラグインやSoundsプラグインだと、JenkinsのサーバーかJenkinsのWeb画面を常時ブラウザで開いているマシンにスピーカーがないといけません。このような環境を用意するのはやや面倒ですが、FHCなら常時起動していてスピーカーも接続されている*1のでちょうどよいです。
やり方
今回は以下の記事を参考にさせていただきました。感謝です。
Jenkins casual notification using Remote access API - 烏賊様
Post build task プラグインをインストールし、ビルド後のタスクを以下の内容で設定します。
RESULT=$(curl ${BUILD_URL}api/xml | perl -le '$_=<>;print [/<result>(.+?)</]->[0]') if [ $RESULT = 'FAILURE' ]; then curl "http://<FHCのホスト>/api/speak?webapi_apikey=<FHCのAPIキー>&str=ビルドが失敗しました&noplay=0&async=1" else curl "http://<FHCのホスト>/api/speak?webapi_apikey=<FHCのAPIキー>&str=ビルドが成功しました&noplay=0&async=1" fi
WebAPIの詳細は、画面リファレンス WebAPI設定をご覧ください。
まとめ
比較的簡単にビルド結果をFHCに喋らせることができるようになりました。
JenkinsのAPIを呼び出せば直前のビルド結果を取得できるのですが、毎回書くのはやや面倒です。ビルド結果に応じて、任意のURLにアクセスするプラグインとか欲しいものです。どこかにありそう。
*1:購入したときに付属するという意味ではありません。基本的にスピーカーを接続して利用するデバイスという意味です。