前回の記事に関連して、このリポジトリでTravis CIを使って継続的インテグレーションを行うようにしたので、そのテスト結果をHipChatにも通知されるようにした。こんな感じ。
テストに失敗すると以下のような感じで、怒りに満ちた王蟲の目のような赤色に。
通知系を設定する場合は、APIトークンを入力するか、設定画面でポチッとするだけで簡単な事が多いけど、パブリックリポジトリでのTravis CIは、設定を.travis.yml
に記述するので情報が公開されてしまう。それを回避するために暗号化する方法が提供されている。
travis encrypt
まずはtravis gemをインストールする。このgemは、Travis CIに関する各種操作をCLIから実行できるもので、前述の暗号化もこれを利用する。このgemのtravis encrypt
コマンドを使用して、対象の文字列を暗号化できる。
今回はHipChatへの通知を行うためのAPIトークンとチャットルーム名がその対象になる。
$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.4.0]
$ gem install travis
$ cd [PROJECT ROOT]
$ travis encrypt [APIトークン]@[チャットルーム名] --add notifications.hipchat.rooms
ドキュメントに書かれているように、APIトークン@チャットルーム名
の書式で記述する必要があるので、travis encrypt
コマンドでも同じように指定して暗号化を行う。--add
オプションは、暗号化した結果の文字列を自動で.travis.yml
に追記してくれるもので、上記を実行すると.travis.yml
の末尾に以下のような通知設定が追記されているはず。
notifications:
hipchat:
rooms:
secure: faqwuptB9Hajlgb5Lh/WcKoREic+ZDO9EGCc28kgI+8PIY+d+xovsvbu6flJZymzr9g9s4rtP/HHrU+YODIo5k1EnGtspcVZY3e7nCQOYwRxlYoISUl9du9tqETmQr35hwwe/fq1cjOlMdayvqqmUFpXWetQey9+gQfuvE44q1c=
ちなみにAPIトークンは、HipChatのサイトにログインした状態でこのURLにアクセスするとトークン生成用のページに移動できる。APIトークンを生成するには管理者権限が必要。また、チャットルーム名の一覧ページにはこのURLからアクセスできる。
最終的に、暗号化された通知設定部分を追加した状態の.travis.yml
全体はこちら。