CruiseControl.NET + Subversion

CruiseControl.NET を使ったサンプルは VSS を使ったものが多いのでとりあえずメモ。

参考URL

CruiseControl.NET の基本的な使い方はこのあたりを参考に。

CruiseControl.NET のダウンロードはここから。現時点で最新は 1.0 Final

CruiseControl.NET 設定ファイル

Subversion を使った場合 VSS のように最新のソースを取ってきてくれないので、 NAnt タスクを使ってチェックアウトする必要がある。

ccnet.config

<cruisecontrol>
  <project name="CcnetTest" webURL="http://localhost/ccnet" publishExceptions="true">
    <workingDirectory>c:\ccnet\work</workingDirectory>
    <artifactDirectory>c:\ccnet</artifactDirectory>
    <sourcecontrol type="svn">
      <trunkUrl>file:///C:/svnroot/trunk</trunkUrl>
      <tagOnSuccess>false</tagOnSuccess>
    </sourcecontrol>
    <tasks>
      <nant>
        <executable>C:\Program Files\NAnt\bin\NAnt.exe</executable>
        <baseDirectory>..\</baseDirectory>
        <nologo>true</nologo>
        <buildFile>svncheckout.build</buildFile>
      </nant>
    </tasks>
    <publishers>
      <xmllogger logDir="log" />
    </publishers>
  </project>
</cruisecontrol>

NAnt ビルドファイル

ここで ${CCNetWorkingDirectory} は ccnet.config で指定した workingDirectory が渡される。
ちなみに svncheckout.build は NAnt タスクで指定した baseDirectory に置く事。

svncheckout.build

<?xml version="1.0" encoding="utf-8" ?>
<project name="Checkout" default="checkout">
  <target name="init">
    <mkdir dir="${CCNetWorkingDirectory}" />
  </target>
  <target name="checkout" depends="init">
    <exec 
      program="C:\Program Files\Subversion\bin\svn.exe"
      commandline="checkout file:///c:/svnroot/trunk ${CCNetWorkingDirectory}"
    />
  </target>
</project>