Can we tell CruiseControl.NET to ignore source control timeout errors?

后端 未结 3 404
生来不讨喜
生来不讨喜 2020-12-09 20:53

We have CruiseControl.NET set up to do continuous integration of a number of our projects.

We are using a block to make sure all of ou

相关标签:
3条回答
  • 2020-12-09 21:30

    In addition to the accepted answer. I found it helped us a lot by using url trigger.

    <triggers>
      <urlTrigger url="http://url.to.your.svn.server" />
    </triggers>
    

    So if the server is not reachable, CCNet won't event trigger a build. That effectively reduced the chance of failures.

    Link to Documentation of URI Trigger.

    Update: we never had a single false failure caused by svn server connectivity issue after above line was in place for near 2 months.

    0 讨论(0)
  • 2020-12-09 21:34

    Here's a block I use to prevent these kinds of errors affecting the build status:

    <maxSourceControlRetries>5</maxSourceControlRetries>
    <stopProjectOnReachingMaxSourceControlRetries>true</stopProjectOnReachingMaxSourceControlRetries>
    <sourceControlErrorHandling>ReportOnRetryAmount</sourceControlErrorHandling>
    

    You need to put these right below the <project> tag, not the <sourcecontrol>. I'm not sure you'll be able to ignore just the "timed out" exception, though - all SVN exceptions will be treated the same.

    UPDATE: you can find out more about these settings in the CC.NET documentation, but let me copy the relevant stuff:

    maxSourceControlRetries: The maximum amount of source control exceptions in a row that may occur, before the project goes to the stopped state(when stopProjectOnReachingMaxSourceControlRetries is set to true).

    stopProjectOnReachingMaxSourceControlRetries: Stops the project on reaching maxSourceControlRetries or not. When set to true, the project will be stopped when the amount of consecutive source control errors is equal to maxSourceControlRetries.

    sourceControlErrorHandling: What action to take when a source control error occurs (during GetModifications). These are the possible values :

    • ReportEveryFailure : runs the publisher section whenever there is an error
    • ReportOnRetryAmount : only runs the publisher section when maxSourceControlRetries has been reached, the publisher section will only be run once.
    • ReportOnEveryRetryAmount : runs the publisher section whenever the maxSourceControlRetries has been reached. When maxSourceControlRetries has been reached and the publisher section has ran, the counter is set back to 0.
    0 讨论(0)
  • 2020-12-09 21:39

    Can't you just increase the 'timeout' value ?

    <sourcecontrol>
       ...
       <timeout>60000</timeout> <!-- timeout in milliseconds -->
       ...
    </sourcecontrol>
    
    0 讨论(0)
提交回复
热议问题