Hudsonで.NETのCI環境を簡単に構築する方法

.NET開発継続的インテグレーション(Continuous Integration)の仕組みとして、Hudsonが利用出来ます。その備忘録を残します。

ここでHudsonがやっていること

これだけです。

Hudsonに以下のプラグインを導入します

HudsonにMSBuildプラグインを導入

http://wiki.hudson-ci.org/display/HUDSON/MSBuild+Plugin
msbuild.hpi をダウンロード

ダウンロードしたファイルをプラグインフォルダに入れる

.hudson\plugins\msbuild.hpi
.hudson\plugins\nunit.hpi

プラグインマネージャのインストール済みに登録されている

MSBuildプラグインの設定

http://localhost:8080/configure にアクセス
MSBuild Builder 項目の MSBuild installation を追加する。

name: MSBuild
Path To msbuild.exe: C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe

保存します、これでMSBuildが使用出来ます。

.NETのプロジェクト開発環境

Microsoft Visual C# 2008 Express Edition を使用します。
http://www.microsoft.com/japan/msdn/vstudio/Express/

C#のソリューションをHoge.slnとして作成しています。

ソリューション'Hoge'
Hoge
HogeTest

プロジェクト本体のHogeNUnitでの単体テスト用プロジェクトのHogeTestを予め作成しておきます。
※特別な設定は何もしてません、普通に作成したVSのソリューションファイルをMSBuildでビルドします!

Hudsonのジョブの作成

[新規ジョブ作成] -> [フリースタイル・プロジェクトのビルド] で新規作成します。

Hudsonのジョブの設定

ソースコード管理システム

[Subversion] にチェック

リポジトリURL: http://xxx.xxx.xxx.xxx/svn/Hoge/trunk/Hoge
ローカルモジュールディレクトリ (オプション): .

ビルド

[ビルド手順の追加] -> [Build a Visual Studio project or solution using MSBuild]

MsBuild Version: (Default)
MsBuild Build File: Hoge.sln
Command Line Arguments: /p:Configuration=Release

[ビルド手順の追加] -> [Windowsバッチコマンドの実行]

"C:\Program Files\NUnit 2.5\bin\net-2.0\nunit-console.exe" HogeTest\bin\Release\HogeTest.dll /xml=nunit-result.xml /config=test.config
exit 0

ビルド後の処理

[成果物を保存] にチェック

保存するファイル: Hoge/bin/Release/

[Publish NUnit test result report] にチェック

Test report XMLs: nunit-result.xml

結果

  • リポジトリからソースを取得して、自動ビルド、自動テストはいけます、 これで.NETでも最低限のCIは可能です。
  • 自動ドキュメント作成として、SandcastleMSBuildから実行しようとしましたが上手くいきませんでした・・