我们已经设置了CruiseControl.NET来持续集成我们的一些项目.
我们使用一个<cb:define>块来确保所有源代码控制操作都以相同的方式完成,并保持配置DRY.
我们偶尔会遇到一个问题导致构建显示"异常".消息如下:
ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation has timed out.
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.ProcessSourceControl.Execute(ProcessInfo processInfo)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.GetModifications(IIntegrationResult from, IIntegrationResult to)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod.GetModifications(ISourceControl sourceControl, IIntegrationResult lastBuild, IIntegrationResult thisBuild)
at ThoughtWorks.CruiseControl.Core.IntegrationRunner.GetModifications(IIntegrationResult from, IIntegrationResult to)
at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate(IntegrationRequest request)
Run Code Online (Sandbox Code Playgroud)
常见的配置部分如下:
<sourcecontrol type="svn">
<trunkUrl>http://ourserver/svn/$(project-svn-path)/trunk/</trunkUrl>
<executable>C:\Program Files\CollabNet Subversion Server\csvn.exe</executable>
<username>user</username>
<password>password<password>
<revert>true</revert>
</sourcecontrol>
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我想忽略这个特定的错误.
我需要做出哪些改变?
我们有一个外部托管的SVN存储库,我们的构建服务器当前是内部的.由于网络中断,超时或其他一些随机原因,构建服务器偶尔(可能每天1或2次)无法找到SVN存储库.使用外部托管的存储库很难避免,但是当它无法找到SVN存储库时,它无法构建!
我想找到一种方法让它在下一个时间间隔再次尝试,并忽略与未解决的存储库相关的任何错误.有谁知道我怎么做到这一点?
我已经发布了我的配置以供参考.
<project name="MyProject" queuePriority="0">
<workingDirectory>C:\RemovedForPost</workingDirectory>
<artifactDirectory>C:\RemovedForPost </artifactDirectory>
<sourcecontrol type="svn">
<trunkUrl>http://RemovedForPost \</trunkUrl>
<workingDirectory>source</workingDirectory>
<username>myuser</username>
<password>*****</password>
</sourcecontrol>
<triggers>
<intervalTrigger name="BuildAMinute" seconds="60" buildCondition="IfModificationExists" />
</triggers>
<tasks>
<msbuild>
<executable>C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
<workingDirectory>C:\RemovedForPost</workingDirectory>
<projectFile>C:\RemovedForPost\RemovedForPost.sln</projectFile>
<buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs>
<targets>Build</targets>
<logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
<timeout>120</timeout>
</msbuild>
<nunit>
<path>C:\Program Files\NUnit 2.5\bin\net-2.0\nunit-console.exe</path>
<outputfile>C:\RemovedForPost.xml</outputfile>
<assemblies>
<assembly> RemovedForPost </assembly>
</assemblies>
<timeout>60</timeout>
</nunit>
</tasks>
Run Code Online (Sandbox Code Playgroud)
谢谢