CruiseControl.NET + Subversion
CruiseControl.NET を使ったサンプルは VSS を使ったものが多いのでとりあえずメモ。
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>