Joh*_*zen 10 svn cruisecontrol.net continuous-integration
我们已经设置了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)
如果可能的话,我想忽略这个特定的错误.
我需要做出哪些改变?
Igo*_*ejc 16
这是我用来阻止这些影响构建状态的错误的块:
<maxSourceControlRetries>5</maxSourceControlRetries>
<stopProjectOnReachingMaxSourceControlRetries>true</stopProjectOnReachingMaxSourceControlRetries>
<sourceControlErrorHandling>ReportOnRetryAmount</sourceControlErrorHandling>
Run Code Online (Sandbox Code Playgroud)
你需要把它们放在<project>标签下面,而不是<sourcecontrol>.我不确定你是否能够忽略"超时"异常,但所有SVN异常都将被视为相同.
更新:您可以在CC.NET文档中找到有关这些设置的更多信息,但让我复制相关内容:
maxSourceControlRetries:在项目进入停止状态之前(当stopProjectOnReachingMaxSourceControlRetries设置为true时)可能发生的行中最大源控制异常量.
stopProjectOnReachingMaxSourceControlRetries:在达到maxSourceControlRetries时停止项目.设置为true时,当连续源控制错误的数量等于maxSourceControlRetries时,项目将停止.
sourceControlErrorHandling:发生源控件错误时要执行的操作(在GetModifications期间).这些是可能的值:
你不能只增加'超时'值吗?
<sourcecontrol>
...
<timeout>60000</timeout> <!-- timeout in milliseconds -->
...
</sourcecontrol>
Run Code Online (Sandbox Code Playgroud)