如何在更新源文件之前运行任务?

时间:2010-03-18 16:37:10

标签: cruisecontrol.net

在检查源代码管理中的修改之前,我需要在CruiseControl .NET中运行一个任务。我的意思是这个任务应该是CruiseControl总是会做的第一件事。我知道了 cc.config中的<prebuild>部分,但它是用于在构建解决方案之前运行任务,因此它不是我需要的。

2 个答案:

答案 0 :(得分:5)

Prebuild在源控件获取之前触发。它位于源控制块之后但仍然首先触发。这是我一直在使用的一个例子:

<cb:define subversionpath="c:\Program Files\Subversion\bin\svn.exe"
/>

 <cb:define name="svn50">
<executable>$(subversionpath)</executable>
<workingDirectory>D:\Projects\B50\Source</workingDirectory>
<trunkUrl>svn://machineName/branches/B_50/Source</trunkUrl>
<autoGetSource>true</autoGetSource>
</cb:define>

 <project name="StreamlineCheckBuild" queue="B50">
<triggers>
  <intervalTrigger seconds="180" />
</triggers>
<sourcecontrol type="svn">
  <cb:svn50/>
  <deleteObstructions>true</deleteObstructions>
  <forceUpdate>true</forceUpdate>
</sourcecontrol>
<prebuild>
  <exec>
    <executable>$(subversionpath)</executable>
    <buildArgs>cleanup</buildArgs>
    <baseDirectory>D:\Projects\B50</baseDirectory>
  </exec>
</prebuild>
<tasks>
...
</tasks>
</cruisecontrol>

答案 1 :(得分:2)

使用批处理文件作为版本控制实用程序的代理,例如。 svn.bat:

echo do stuff
"c:\program files\Subversion\svn.exe" %*

使用executable atrribute指向bach文件。