// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents

**概要 [#u74ba26f]
HudsonはJavaで実装されたContinuous Integrationのためのツールです。Subversionなどのバージョン管理システムからからソースコードをチェックアウトしてきて、ソースをコンパイルしたりJUnitのテストを実行したりなど、継続的インテグレーション開発の手助けをしてくれます。

HudsonはJbossなどのServletコンテナで稼働するwar形式で配布されています。またHudsonのwar自体にも軽量のサーブレットエンジンが同梱されていて、コマンドプロンプトから
 java -jar hudoson.war
とやって実行することも可能です。

**ダウンロード [#t4464eec]
http://hudson-ci.org/ にあるリンクよりダウンロード可能です。


**インストール [#ne5a1dec]
ダウンロードしたwarについて、先のコマンド
 java -jar hudoson.war
を実行するか、通常のwarファイルのようにサーブレットコンテナにデプロイすればインストールは完了です。

蓄積されるいろいろなデータファイルは、コンテナのオーナのカレント
 ~/.hudson/
配下に保存されるようです。

ちなみに起動するポート番号を変更するには
 java -jar hudoson.war --httpPort=8888
などとオプション指定します。


**使ってみる [#s5233a95]
http://localhost:8080/hudson/ 
へアクセスすると下記のようなトップページが表示されます。

#ref(toppage.png)


ここからSubversionのプロジェクトとかをジョブって単位で登録していくようですね。


***ジョブ(プロジェクト?)を作成する [#n9e277e7]
プロジェクトに名前を付け、プロジェクトの種類を選んでOKとすればよいです。プロジェクトの種類はとりあえず「フリースタイル・プロジェクトのビルド」にしておきます。プロジェクトの名前は「SampleJob」にしました。


***プロジェクトの環境設定を記述する1 [#lb36a7c1]
引き続きプロジェクトの設定を記述していきます。

#ref(pref01.png)


まずはここまでで
-ソースコード管理システムをどれを使うか、またそのリポジトリの情報
-リポジトリブラウザは何を使うか(ViewVCとかですね)、そのURLはなにか

などを指定します。ココではSubversionを選択しURLは
 https://www.masatom.in/svnsamples/repoexp/trunk/HudsonSample/
リポジトリブラウザはViewSVNを選択しURLは
 http://www.masatom.in/viewvc/Examples/trunk/HudsonSample/
としました。


***プロジェクトの環境設定を記述する2 [#ledc59e3]
引き続き
-ビルドは何をするか
-ビルド後にJavaDocを保存するか、そのパスはどこか
-JUnitの結果集計は保存するか、
-ビルド等に失敗したらメールするか、

などの設定があります。
#ref(pref02.png)

まずはビルドを設定します。「ビルド手順の追加というプルダウンがあり、そこには
「シェルの実行」「Mavenの呼び出し」「Antの呼び出し」「Windowsのバッチコマンドの呼び出し」から選択することができます。

ココではAntを使用することにしました。AntのBuild.xmlはあらかじめ今回のビルド対象であるSubversionのHudsonSampleプロジェクト直下に入れておきます。「Antの呼び出し」を指定すると、Antのどのターゲットを実行するかを指定するボックスが表示されますので、「javac junit jar javadoc」とスペース区切りで指定しておきます。

ビルドで使用しているbuild.xmlは [[ビルド用ファイル>http://www.masatom.in/viewvc/Examples/trunk/HudsonSample/build.xml?view=log]]より参照することができます。コンパイルやjarの生成、JUnitの実行、JavaDocの生成など、様々な実行コマンドはほとんどAntタスクを使用しているのがわかると思います。Hudsonはそれらを定期的・継続的に実行して結果を保存してくれるツールって感じですね。

***実行してみる [#t72e1e8c]
さてココまででソースコード管理ツールやビルドするプロジェクト、ant呼び出しのターゲットなどを指定しました。

いったんここでビルドを実行してみようと思います。トップページにジョブの一覧が表示されていますので、ジョブ名が「SampleJob」であるモノを選択します。すると左にメニューが表示され「ビルド実行」というリンクが存在するので、それをクリックします。

#ref(build.png)





ビルドが実行されました。


**JavaDocやJUnit結果を保存する [#n9f3a62c]
先の画面にもあったように、ビルド後の処理としてJavaDocを保存したり、JUnit結果のレポートなどを保存することができます。

#ref(pref03.png)

JavaDocは「JavaDocの保存」にチェックを入れ、パスを指定します。パスは「HudsonSample/document/javadoc」としました。

JUnitのレポートは「JUnitテスト結果の集計」チェックを入れ、パスを指定します。パスは「HudsonSample/document/report/*.xml」としました。

ちなみにこれらのパスはAnt側で指定してるパスですね。


**TIPS集 [#ja6d78b7]
***コミットに反応してビルドを実行する [#g45fb2ab]








**関連リンク [#lce0dfb1]
-[[Hudson CI>http://hudson-ci.org/]]
-[[特集:Hudsonを使ったアジャイルな開発入門|gihyo.jp … 技術評論社>http://gihyo.jp/dev/feature/01/hudson]]
-[[suz-lab - blog: CIツールをContinuumからHudsonへ>http://blog.suz-lab.com/2008/05/cicontinuumhudson.html]]
-[[けろぶろ: Hudson(1) 導入編>http://keroblo.blogspot.com/2007/05/hudson1.html]]
-[[CentOS に Jenkins と Maven - sardineの日記>http://bit.ly/10Z0Ixc]]
-[[Jenkinsのメール通知にGmailを使う | コーヒーサーバは香炉である>http://blog.maripo.org/2012/07/jenkins-gmail/]]
-[[ぼくがかんがえたさいきょうのgitとMavenとJenkinsを使った開発 : toda_k>http://dev.worksap.co.jp/Members/toda_k/2012/08/22/git-maven-jenkins/]]
-[[Hudsonを使ったアジャイルな開発入門:特集|gihyo.jp … 技術評論社>http://gihyo.jp/dev/feature/01/hudson]]
-[[Jenkinsでビルド・パイプラインを作る | Ryuzee.com>http://www.ryuzee.com/contents/blog/4470]]
-[[おっさんエンジニアの実験室: Jenkins新規ジョブに所要時間を設定する>http://ossan-engineer.blogspot.jp/2012/09/jenkins.html]]
-[[CentOS に Jenkins と Maven - sardineの日記>http://d.hatena.ne.jp/sardine/20110602]]
-[[Android/Jenkins - ピノキヲ IT Wiki>http://pinoki.la.coocan.jp/wiki/?Android%2FJenkins#tf055f17]]
-[[Jenkins でビルドが成功したらシェルスクリプトを実行する | 暇人じゃない>http://hima-j.in/testing/jenkins-build-success-exec-script/]]
-[[Monitoring external jobs - 日本語 - Jenkins Wiki>https://wiki.jenkins-ci.org/display/JA/Monitoring+external+jobs]]
-[[RedHat Repository for Jenkins>http://pkg.jenkins-ci.org/redhat/]]
-[[Jenkins - Wikipedia>http://ja.wikipedia.org/wiki/Jenkins]]
-[[邪道jenkinsを検証してみたよ | netmark.jp>http://netmark.jp/2012/12/jenkins.html]]
-[[Jenkinsをジョブ管理ツールとして使うアイデア: プログラマの思索>http://forza.cocolog-nifty.com/blog/2012/10/jenkins-5e9c.html]]




----
この記事は
#vote(おもしろかった[2],そうでもない[0])
#vote(おもしろかった[3],そうでもない[0])
- ちなみにいまやHudsonでなくJenkinsって名前で、おっちゃんもかわいい顔になってますね -- [[きの]] &new{2013-04-16 (火) 23:08:00};

#comment
#topicpath


SIZE(10){現在のアクセス:&counter;}

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS