我正在尝试在源控制块执行之前执行程序并将源下载到我的本地工作目录。 prebuild任务执行后,任务块执行后。我已经倾倒了文档而无法弄明白。
我最终编写了一个在代码检索之前运行的可执行文件。即便如此,它仍然很脆弱。所以,我改用了Automated QA。
答案 0 :(得分:1)
据我所知,这不是一个选择。持续集成的目的是获取最新代码,然后执行构建。如果您需要进行某种类型的清理(可能是文件删除),您应该在构建结束时执行此操作。这样,在下一个构建开始之前,它已经处于所需的状态。
答案 1 :(得分:1)
我在prebuild中尝试了以下简单命令。在源阻止之前看不到它被触发。
<prebuild>
<exec>
<executable>cmd</executable>
<buildArgs>"/c MD C:\build\1.4"</buildArgs>
</exec>
..
</prebuild>
答案 2 :(得分:0)
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>