ブログ@kaorun55

HoloLensやKinectなどのDepthセンサーを中心に書いています。

Subversion と Hudson の連携−その1 Subversion リポジトリのソースをビルドする

インストールや基本的な使い方はここを見て覚えた。
次は Subversion リポジトリからソースを持って来てそれをビルド。

環境および前提条件

  • Windows XP Pro SP2 + TracLightning 2.0.4(Trac + SVN + Hudson)
  • Trac 側プロジェクトは 「SampleProject」 とする(別プロジェクトの場合は SampleProject を読み替える)

手順

Hudson の環境作成

1. ユニットテストの勉強のときに作った環境一式をリポジトリ(今回は http://192.168.128.7/svn/SampleProject/UnitTest)へインポートする

2. Trac から Hudson のダッシュボードへ移動(以降は TracLighrning インストール PC で行う

3. 「新規ジョブ作成」をクリック

4. ジョブ名に 「UnitTest」 と入力、「フリースタイル・プロジェクトのビルド」にチェックを入れ、「OK」ボタンを押下

5. 詳細設定画面の 「ソースコード管理システム」 で 「Subversion」 にチェックし、リポジトリの URL とローカルモジュールディレクトリ(作業フォルダ)を入力する

6. 詳細設定画面の 「ビルド」 で 「ビルド手順の追加」 をクリックし 「Windows バッチファイルの実行」 を選択

7. 下図のようにコマンドを入力し 「保存」 ボタンを押下

8. プロジェクト 「UnitTest」 が出来上がる



お試しと環境確認

1. 試しに 「ビルドの実行」 からビルドを行うととりえあず成功する

2. 出力の詳細は 「ビルド履歴」 のリンクから 「コンソール出力」 を辿ることで見ることができる

3. ビルドのためのチェックアウトフォルダは規定では 「C:\TracLight\projects\hudson\.hudson\jobs\UnitTest\workspace」 になる(そのため、ビルドコマンドはこのフォルダを基準に設定する)



ここまでの問題点と改善方法

もしテストがエラーでも正常終了と見なされてしまう。
エラーをエラーをするには、バッチファイルの戻り値を nmake の戻り値とリンクする必要がある



改善手順

1. makefile で makeile の結果を %errorlevel% で取得し、バッチファイルの結果とする。以下のように書き換える(ついでにいらないところを削除)

del Tester.*
ruby TestMakefileFactory.rb
nmake
exit %errorlevel%

2. これをコミットし、Hudson で実行する(エラーと扱われる)

3. 正常終了のパターン

まとめ

ここまでで、ソース修正 -> コミット -> ビルド&テストという流れができた。
Hudson は扱いが簡単なのでオススメできるツールです:)