アンケートご協力のお願いgihyo.jpでは,2010年度に向けて豪華プレゼントが当たる読者属性アンケートを実施しております。ご協力ください。

gihyo.jp » DEVELOPER STAGE » 特集 » Hudsonを使ったアジャイルな開発入門 » 第4回 プラグインを使う

Hudsonを使ったアジャイルな開発入門

第4回 プラグインを使う

この連載では,オープンソースの継続的インテグレーション(CI)サーバであるHudsonを利用した,ソフトウェア開発の生産性向上について解説しています。前回の記事では,規模の大きいソフトウェアプロジェクトの開発で,Hudsonを有効活用する方法について解説しました。今回は,Hudsonの魅力の一つであるプラグインシステムに触れます。プラグインは紹介しきれないほどあるので,ここでは比較的一般的だと思われる,Hudsonと外部システムの連携方法を見てみましょう。

プラグインの探し方とインストール

インハウスで開発されていて公開されていないものを除けば,HudsonのプラグインのほとんどはHudsonプロジェクト上で開発され公開されています。プラグインを探すには,まずHudson Wikiのプラグインページを見ましょう。ここには,公開されているほとんどのプラグインが種類によって分類されていて,説明を読むことが出来ます(もっとも説明書きの詳細さはプラグインによって大きなバラツキがあります)。ここで面白そうなプラグインを見つけたら,ダウンロードセクションからダウンロードします。この時,必ず推奨Hudsonバージョン(これはプラグインをビルドする時に使われたHudsonのバージョンです)が説明に書かれているので,このバージョン以降のHudsonがインストールされているかを確認しましょう。

画像

ダウンロードしたプラグインは,Hudsonのユーザーインターフェースからアップロードできます。Hudsonのトップページから,「TODO」をクリックして,「プラグインの管理」を選んで下さい。ここからアップロードするプラグインを選んでインストールします。IDEのようにプラグインのインストールと更新が自動でできるインターフェースが付いているとよいのですが,現在のバージョンでは残念ながらそこまでの機能は実装されていません。

画像

プラグインをアップロードしたら,プラグインを認識させるためにHudsonを再起動する必要があります。「java -jar hudson.war」のように起動している場合はCtrl+Cを押してプログラムを停止してから,もう一度起動すればOKです。既にアプリケーションサーバにインストールしてある場合には,アプリケーションサーバの再起動をしてください。Hudson再起動後,このプラグイン管理画面に戻ってくれば,プラグインのインストールが正常に終了したか,もしくは失敗したかがわかります。

バッチ処理プラグイン

最初に紹介するプラグインは,バッチ処理プラグインです。プラグインの名前は「batch-task」です。これは,ビルド毎に必要ではないけれども,時々実行される定例処理を自動化するための仕組みです。例えば,ビルドをウェブサイトにポストしたり,リリースを行ったり,最新バージョンのライブラリを取り込んだりするのがこれに相当します。

このプラグインをインストールすると,ジョブの設定画面にバッチ処理を設定するためのセクションが現れます。それぞれのバッチジョブにはシェルスクリプトを入力できます。例えば,バイナリをウェブサイトへアップロードするスクリプトは次のようになるでしょう。このようにして任意の数のバッチ処理が設定できます。

画像

このような設定をしておくと,プロジェクトのページにバッチ処理へのリンクが現れ,ここからビルドを実行するのと同じ感覚でバッチ処理を実行できます。

画像

ビルドプロモーションとプラグイン

画像

次に紹介するプラグインは,ビルドプロモーションプラグインです。これは,Hudsonが生成するビルドのうちから,特に優れたビルドを峻別してマーキングするためのプラグインです。

このプラグインの出発点は次のような問題意識です。開発者へ素早くソースコードの状態をフィードバックするためには,一つのジョブにビルドやテストなどの多くの作業を詰め込むのではなく,ある程度細かい単位にわけて,複数のジョブに分解したほうが優れているという説明を,前回書きました。これは,パイプラインのあるCPUの方がそうでないものより沢山の命令を同じ時間で実行できるのに似ています。

ところが,この方法には一つ問題があります。通常,このように分解をするとビルドは一番最初に実行され,その下流ビルドとして沢山のテストが実行されることになります。この時,ビルドだけを行うジョブの履歴を見ていると,ビルドが完了したジョブは全て成功と認定されるのがわかるでしょう。しかし,ビルドが正常に完了したからといって,そのビルドが実際に使えるビルドであるとは限りません。実際,ビルドに失敗するような致命的な問題よりも,ビルドは成功するけれどもいくつかのテストに失敗する,というケースの方が普通でしょう。

さて,私達は今Hudson上でテストも実行しているのですから,成功したビルドはやがてテストされ,その結果は別のジョブ上に表示されます。これまた前回述べたように,ファイル指紋の追跡を利用していれば,Hudsonはどのテストがどのビルドに対して行われて結果がどうであったかを全て知っていることになります。テストの結果を人間が見に行くこともできますが,テストジョブの数が増えるとこの作業は煩雑になります。Hudsonの方で,テストの結果をビルドにオーバーレイしてみることはできないでしょうか?

ビルドプロモーションは,これを実現するための仕組みです。この仕組みの目標は,ただビルドに成功しただけでテストで失敗があった不良ビルドから,テストにも合格して品質に一定の保証ができる優良ビルドを峻別し,優良ビルドを「昇進」させることです。昇進したビルドには,その旨を示す☆マークが付き,また最終成功ビルドに永続リンクが提供されるように,最終昇進ビルドにも永続リングが提供されます。

著者プロフィール

川口耕介(かわぐちこうすけ)

Sun Microsystems, Inc.のシニアスタッフエンジニア。主としてXMLとのそのスキーマ言語関係の仕事をし,JAXB, JAXP, JAX-WSなどの仕様策定・実装に携わった。仕事の他にも,主にjava.netに多数の趣味のプロジェクトをホストしている。Hudsonは趣味のプロジェクトとして開始したが,今では本業の一部。米国カリフォルニア州在住。

URLhttp://www.kohsuke.org/

コメント

コメントの記入

パスサポ

多数の情報処理技術者試験対策書籍の発行実績を誇る技術評論社がお届けする,資格試験合格サイト「めざせ! 情報処理試験 パスサポ」が開設されました。

ピックアップ

サクセスストーリーに続く,快適サーバー運用管理のヒント!

データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた技術情報や心構え,その魅力について多角的に紹介。

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

キーパーソンが見るWeb業界

本連載はWeb Site Expert/gihyo.jpとの連動企画です。阿部淳也, 長谷川敦士, 森田雄のお三方による,Web業界をテーマにした座談会です。

きたみりゅうじの聞かせて珍プレー

ソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。みなさんからの投稿もお待ちしてます!

ActionScript 3.0で始めるオブジェクト指向スクリプティング

野中文雄氏が,簡単なスクリプトは書いたことがあるという初級者を対象に,ActionScript 3.0の基本からクラス定義までを解説します。

まだ間に合う「ITパスポート」受験対策 原山先生の短期合格塾

この連載では,4月18日のITパスポート試験の受験に向けて,短い期間で効率良く受験対策を行う方法や,確実に得点するための裏ワザなどを伝授していきます。

Ubuntu Weekly Recipe

Ubuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。

C/C++プログラマのためのDTrace入門

よくカーネルのチューニングや解析で活用されるDTraceですが,実はユーザプログラムの開発においても非常に有用です。連載ではC/C++プログラマやテストに関わる方向けにDTraceの使い方を解説します。

Blogopolisから学ぶ計算幾何

計算幾何学は,図形に関するアルゴリズムを研究するコンピュータサイエンスの一分野です。本連載では,ビジュアルブログ検索エンジン「Blogopolis」で採用されている計算幾何のアプローチを例に取り上げながら,計算幾何の初歩を実践的に学習します。

検索エンジンはいかにして動くのか?

本連載では, 今や誰もが利用している検索エンジンの中身を,全体の仕組みやデータ構造,アルゴリズムから分散インデックスまで,最近の研究事例も交えて紹介します。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス