2009-07-21 11 views
7

Abbiamo un repository SVN ospitato esternamente e il nostro build server è al momento interno. Occasionalmente (probabilmente 1 o 2 volte al giorno) il server di build non è in grado di trovare il repository SVN a causa di un'interruzione della rete, un timeout o qualche altro motivo casuale. Con un repository ospitato esternamente è difficile da evitare, tuttavia quando non riesce a trovare il repository SVN fallisce la build!Il build CruiseControl.NET fallisce quando SVN non è disponibile

Mi piacerebbe trovare un modo per riprovare al prossimo intervallo e ignorare eventuali errori relativi ad un repository non trovato. Qualcuno sa come posso fare questo?

Ho pubblicato la mia config per riferimento sotto.

<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> 

Grazie

+0

Definitivamente zoppo. Anch'io ho questo problema. +1. –

risposta

5

correzione. Tutto ciò che si desidera è nelle nuove impostazioni

CruiseControl.NET docs

È possibile impostare di non segnalare un guasto fino ad un massimo di tentativi è impostato. Quindi fai il massimo a 3 e impostalo per spostarti solo sull'unità dell'editore (cioè fallisci la build) che raggiunge il limite. Quindi 1 o 2 fallimenti andranno bene, ma poi 3 falliscono nel costruire qualcosa è sbagliato.

+0

Beh, fallirebbe solo una volta il 95% delle volte, solo due volte di seguito l'altro 5%, quindi il trigger non mi sarà molto utile, ma se non riesco a sistemarlo dovrò liberarsi di CC.NET. Con solo 1-2 check-in al giorno stiamo ottenendo una percentuale di fail rate del 50%. – Odd

+0

Beh, non so dove andresti. Sembrerebbe essere un principio base dell'integrazione continua che se non riesci a raggiungere il server di controllo del codice sorgente dovresti fallire la compilazione. C'è un sistema a cui stai pensando che ti permetta di configurarlo? – Alex

+2

Ma se stai avendo QUELLI molti fallimenti, non pensi che dovresti affrontare la causa principale del tuo problema? Voglio dire, a volte capita a me, ma di solito è durante i tempi di inattività programmati del provider SCC per aggiornamenti e simili. –

Problemi correlati