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>