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

orangain flavor

じっくりコトコト煮込んだみかん2。知らないことを知りたい。

フューチャーホームコントローラーをJenkinsのXFDとして使う

fhc jenkins

はじめに

フューチャーホームコントローラー(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=<FHCAPIキー>&str=ビルドが失敗しました&noplay=0&async=1"
else
  curl "http://<FHCのホスト>/api/speak?webapi_apikey=<FHCAPIキー>&str=ビルドが成功しました&noplay=0&async=1"
fi

WebAPIの詳細は、画面リファレンス WebAPI設定をご覧ください。

まとめ

比較的簡単にビルド結果をFHCに喋らせることができるようになりました。

JenkinsのAPIを呼び出せば直前のビルド結果を取得できるのですが、毎回書くのはやや面倒です。ビルド結果に応じて、任意のURLにアクセスするプラグインとか欲しいものです。どこかにありそう。

*1:購入したときに付属するという意味ではありません。基本的にスピーカーを接続して利用するデバイスという意味です。