CruiseControl.NETで継続的結合

以前は id:yo-taka:20050607 みたいにやってましたが、今はにこんな感じですというメモ。


面倒見ている(保守してる)のは、

  • VC++のプロジェクト
  • MFCアプリケーション(当然アンマネ)
  • 結構大きなソリューション(30以上のプロジェクトを纏めてる! ^^;)
  • VSSでソース管理
  • cppUnitでUnitテストを実施している(Unitテスト用のプロジェクト&ソリューションも別途ある)
  • cppUnitの結果はxml出力を利用
  • 複数のバージョンがあり、各々が現役(たぶん)
  • Doxygenを利用してのドキュメント生成

ってな感じ。
まぁ、便利な.NET用のツールはあまり使えませんが、以下の順で実施。

  1. 各リリース対象プロジェクトのソリューションをビルド -> 結果はWebダッシュボードで確認できる
  2. 各Unitテストプロジェクトのソリューションをビルド -> 結果はWebダッシュボードで確認できる
  3. NAntを使って、
    1. 各Unitテスト用プログラムを実行させるバッチを起動(バッチかよ!)
    2. Unitテストの結果(xml)を調べる自作のプログラムを起動して結果チェック
    3. Doxygenを起動してドキュメントを生成

上の自作プログラムは、テスト結果で異常を発見すると「コード:1」で終了する。そうすると、Webダッシュボードにはエラーとして検知されたことが表示される(もちろんCCTrayでは赤になる)。

ただソリューションでビルドしているので、インテグレーション用のサーバにVisualStudioがインストールされていなければならない...。
そうそう、Doxygenも結構時間がかかるのでソースの更新頻度が少なくなってから行うようにしています。

というとこで。