Jenkinsでビルド後に音(BGM、SE)を鳴らしてみた

Twitterでビルド後の通知にゲームのBGMを鳴らしてるという話を聞いたのでマネしてみたところ結構良かったのでメモ。

  • 導入した理由
    • 楽しそう
    • 通知はメールやらIRCやらでやっていたけどなんとなく埋もれがち、気付かなかったりすることもあった
  • ビルド後に音を鳴らしてみて
    • そこに居れば絶対に気付くのは良い
    • ビルド失敗音がなる度に失敗した理由をチームメンバと話すようになった。「あ、今の自分かも。調べますね。」みたいな。
    • フィードバックがより早くなった
    • ゲームみたいで楽しい
    • 他チームの人も「何やってんの?」みたいな感じで Jenkins とか CI な開発に関心持ってくれる
  • その他
    • BGM、音はチームメンバで楽しく決めたい。趣味の合う合わないとか。
    • 失敗音はなるべく軽いものを(継続的に鳴るので重いと辛くなっちゃう)

Jenkinsで音を鳴らすには

  • プラグインのインストール
  • プロジェクトの設定
    • ビルド後の処理 の Jenkins Sound を選択します。
    • 以下の設定項目が表示されるのでビルド結果に応じたサウンドを選択して設定。直前のビルド結果の設定もできるのは嬉しいです。


上の例は成功時には alleluia、失敗時には EXPLODE それぞれ異なるサウンドが鳴るように設定をしています。
選択できる音源は予めプラグインに同梱されているのでとりあえず選択しておけば音を鳴らすことができます。(どれも微妙ですが…)
これだけの設定でJenkinsサーバからビルド後の結果によって音を出すことができます。お手軽。簡単。

サウンドファイルをカスタマイズしたい場合

上記の設定で音を鳴らすことはできましたが、おそらく自由に音源を設定したくなるハズです。
Sound Plugin では当然設定できるようになっています。音源ファイルのzip作ってJenkinsの設定するだけです。
手順は以下の通り

  • サウンドファイルの作成
  • Jenkinsの設定
    • Jenkinsの管理 > システムの設定 のリンクから設定画面を開く
    • Jenkins Sounds の Sound archive location に 作成したzipファイルのパスを設定する(http://, file:// の表記で指定)

ちなみに自分のチームでは 成功時には某RPGのレベルアップの音、失敗時にはヒゲが死んだ時の音 を流しています。
ビルドの度に鳴りますし、短くて軽い雰囲気の音が良いかと思います。

JenkinsサーバではないPCから音を出したいケース

自分のプロジェクトではその辺に転がってたノートPCをJenkinsサーバにしたため、Jenkins自体のPCから音が鳴っても良い状態です。
以下のようにJenkinsサーバが開発チームのすぐ近くある場合は問題ありません。


チームによってはJenkinsをどこか別の場所のサーバ上に立てることもあると思います。
以下のようにJenkinsサーバが開発チームのすぐ近くにない場合はJenkins自体から音が鳴っても気付くことはできません。


Sounds plugin はバージョン0.1がリリースされた当初はそこまで対応していなかったみたいですがバージョン0.4からは別のPCのブラウザ上から音を鳴らすことが可能になっています。素敵。
 ※かえる本でも Sounds plugin は紹介されていたのですがまだ対応される前だったのか触れられていませんでした。
以下のように音が出るPCを開発チームの側においてブラウザを上げておくだけで音でビルド結果を通知することができます。


以下手順

  • Jenkinsの設定
    • Jenkinsの管理 > システムの設定 のリンクから設定画面を開く
    • Jenkins Sounds の Play through HTML5 Audio enabled browser.にチェック
  • 音を鳴らすPCの準備
    • ブラウザを立ちあげて http://Jenkinsサーバ/sounds/jsonpdemo を開いておくだけ
      • HTML5 Audio を利用して音を鳴らしているみたいなので動作するブラウザを使用しないといけないみたいです。(ちなみにiPhone、nexus7で試したけどダメでした…)


Jenkins

Jenkins

かえる本では通知だけで8章が割かれています。通知重要。後で気付いたのですが Sounds plugin もしっかりと紹介されていました。読んだつもりだけど記憶が…

おまけ

こんなのもあるらしいです。ウチは使ってないですが…。つなぎのヒゲの画像とBGM使ってるしアウトw
Html Audio Notifier