Jenkins+HipChat+Hubotをチーム開発に導入してお手軽CI:iOSアプリ開発でもCI/継続的デリバリしようぜ(終)(2/3 ページ)
現代の開発現場において欠かせないCI/継続的デリバリを、iOSアプリ開発に適用するためのツールやノウハウを解説する連載。最終回は、Jenkinsと連携させやすいチャットツールHipChatやBotフレームワークHubotを組み合わせてCIをより効率的に回す方法について解説します。
HipChatとJenkinsを連携させる
HipChat API認証トークンを取得する
Jenkinsのジョブ結果をHipChatに通知するには、HipChatのAPIアクセストークンを利用します。そのため、まずはAPIアクセストークンを取得しましょう。
まずHipChatのチームページ(http://{チーム名}.hipchat.com/)にアクセスし、一番上の「Group admin」をクリックして、グループの管理ページを開きます。表示されているタブの中にある「API」をクリックして、API認証トークンの管理ページを開きます。
このページでは、対象のチームのAPI認証トークンを複数作成できます。作成するAPI認証トークンはAdminとNotificationの2種類のタイプから選択します。Adminはチームに関する全てのAPIへのアクセスが許可されます。一方、Notificationはチームのルームにメッセージを送信するためのAPIへのアクセスのみ許可されます。
今回はメッセージの送信を行う目的で利用したいので、「Type」をNotificationに設定してください。また「Label」はAPI認証トークンを識別するための名前ですので、自由な名前で構いません。
「Create」をクリックすると、新しいAPI認証トークンが作成されます。Jenkinsの設定で利用するので、コピーしておいてください。
HipChatプラグインをインストールする
次に、JenkinsにHipChatプラグインをインストールしましょう。Jenkinsのインストール方法とiOSアプリをビルドするジョブの作成方法については、連載第3回記事の「HomebrewでJenkinsの環境構築」を参照してください。
HipChatのプラグインをインストールするには、Jenkinsのダッシュボード画面の左側に表示されているメニューから「Jenkinsの管理」を選択し、「プラグインの管理」を開きます。
そして「利用可能」タブを開き、上部の検索バーに「HipChat」と入力すると、HipChatプラグインが表示されるのでチェックを入れます。最後に、「再起動せずにインストール」をクリックしてインストールします。
インストールが完了したら、次にHipChatのAPI認証トークンを登録します。「Jenkinsの管理」を選択し、「システムの設定」を開きます。この設定画面の一番下にHipChat用の設定項目が追加されているので、入力していきましょう。
まず「API Token」には、先ほど取得したHipChatのAPI認証トークンを入力します。「Room」には通知を送りたいルームの名前を入力します(ジョブの設定から上書きすることもできます)。「Jenkins URL」には起動しているJenkinsのURLを入力します。このURLは、ジョブの実行結果の通知メッセージに表示されるジョブのリンクで利用されます。
ジョブにHipChatの設定を追加する
次に、JenkinsのジョブにHipChatの設定を追加しましょう。HipChatプラグインのインストール後は「HipChat Notifications」という設定が追加されるので、この中の「Project Room」にジョブの実行結果を通知したいルームの名前を入力します。「Start Notification」は、チェックを入れるとジョブの開始時にも通知されるようになります。
次に、「ビルド後の処理の追加」から「HipChat Notifications」を選択します。追加するだけでジョブの実行結果がHipChatのルームに通知されるようになります。
以上で設定は完了です。ジョブを実行してみると、実行結果が指定したルームに通知されるようになります。
ここまでで、HipChatとJenkinsを連携できました。HipChatを組み合わせることによって、ビルドやテストのエラーが発生したときにJenkinsの画面を開かなくても知ることができるので、チームのメンバーは問題を発見しやすくなるはずです。
チャットボット作成フレームワーク「Hubot」とは
Hubotは、Node.jsで作られているBotを動作させるためのフレームワークです。GitHub社が開発しており、MITライセンスで公開されています。
Hubotは「Adapter」と呼ばれるモジュールを組み込むことによって、さまざまなツールやサービスと連携できます。例えば、チャットツールと組み合わせると、チャットで受け取ったメッセージを元に何かしらのコマンドを実行したり、自動的にメッセージを返信したりすることができます。
iOSアプリ開発においても、Hubotはさまざまな場面で活躍してくれます。本稿では、HubotとHipChat、そしてJenkinsを連携させ、「HipChatでメッセージを受け取ったらJenkinsのジョブを実行する」という仕組みを作ってみましょう。
Hubotのインストール
それでは、Hubotをインストールしましょう。本稿では、Mac OS X Mavericksにインストールする手順に解説します。
まずはHubotを動作させるために必要な、Node.js、Redisをインストールしましょう。Homebrewを利用している場合は、以下のコマンドでインストールできます。なお、Redisはインストール後起動し、利用できる状態にしておきましょう。
$ brew install nodejs redis $ redis-server &
次にHubotのインストールします。なお、CoffeeScriptも一緒にインストールしておきます。CoffeeScriptはHubotの自作スクリプトを記述する際に必要になります。
$ npm install -g hubot coffee-script
インストールを確認したら、動作確認を行いましょう。次のコマンドで「myhubot」という名前の新しいBotを作成します。
$ hubot --create myhubot
Botを新規作成すると、フォルダーが自動的に作成され、Botの動作に必要なファイルが自動で作成されます。新しく作成されたBotのディレクトリで「bin/hubot」コマンドを実行すると、Botが起動します。
$ cd myhubot $ bin/hubot Hubot>
動作確認として、簡単な組み込みスクリプトを実行してみましょう。次のコマンドを実行すると、「ロボット三原則」を教えてくれます。
Hubot> hubot the rules Hubot> 1. A robot may not injure a human being or, through inaction, allow a human being to come to harm. 2. A robot must obey any orders given to it by human beings, except where such orders would conflict with the First Law. 3. A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.
以上でHubotの基本的な環境構築は終わりです。
Copyright © ITmedia, Inc. All Rights Reserved.