Comment puis-je arrêter le régulateur de vitesse de reconstruction après une construction échoué?

StackOverflow https://stackoverflow.com/questions/2845832

Question

Je reviens du week-end pour découvrir que quelqu'un **** **** ahem avait manqué un fichier commit dernière chose vendredi après-midi ... Régulateur de vitesse a été amusant d'avoir, et essayé de reconstruire toutes les cinq minutes depuis lors, malgré l'absence d'autres livraisons.

Cela signifie que mes collègues et moi-même avons reçu environ six emails hojillion de régulateur de vitesse. Un seul échec email serait plus que suffisant pour nous en informer.

Est-il possible à la construction de régulateur de vitesse d'arrêt en cas d'échec, au moins jusqu'à ce qu'un nouveau commettras se produit?


Modifier : Ajouté config xml

<project name="XXXX">
<listeners>
  <currentbuildstatuslistener file="logs/${project.name}/status.txt" />
</listeners>
<bootstrappers>
  <svnbootstrapper file="https://XXXXX/trunk/build/cruisecontrol.xml" username="XXXX" password="XXXX" />
</bootstrappers>
<modificationset quietperiod="300">
  <svn localWorkingCopy="projects/${project.name}/" RepositoryLocation="https://XXXXX/trunk/project1" username="XXXX" password="XXXX" />
  <svn localWorkingCopy="projects/${project.name}/" RepositoryLocation="https://XXXXX/trunk/project2" username="XXXX" password="XXXX" />
  <svn localWorkingCopy="projects/${project.name}/" RepositoryLocation="https://XXXXX/trunk/project3" username="XXXX" password="XXXX" />
  <svn localWorkingCopy="projects/${project.name}/" RepositoryLocation="https://XXXXX/trunk/project4" username="XXXX" password="XXXX" />
</modificationset>
<schedule interval="300">
  <ant anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build/cruisecontrol.xml" propertyfile="projects/${project.name}/project1/production.build.properties" />
</schedule>
<log dir="logs/${project.name}/">
  <merge file="projects/${project.name}/_reports/checkstyle_report.xml" />
  <merge dir="projects/${project.name}/_reports/pmd_report.xml" />
  <merge dir="projects/${project.name}/_reports/junit" />
</log>
<publishers>
  <onsuccess>
    <artifactspublisher dest="artifacts/${project.name}" dir="projects/${project.name}/_dist" />
    <artifactspublisher dest="artifacts/${project.name}" dir="projects/${project.name}/_reports" subdirectory="_reports"/>
  </onsuccess>
  <email spamWhileBroken="true" returnAddress="XXX@EXAMPLE.com" subjectPrefix="[BUILD]" buildResultsURL="http://XXXXX/dashboard/build/detail/project" mailHost="mail.EXAMPLE.com" skipUsers="true" >
    <failure address="XXX@EXAMPLE.com" />
    <success address="XXX@EXAMPLE.com"/>
 </email>
</publishers>

Était-ce utile?

La solution

est-ce pas l'attribut buildafterfailed de <project> la chose dont vous avez besoin?

Description de l'attribut dans le CruiseControl config référence :

  

Faut-CruiseControl continuer à construire, même si elle a échoué et aucune nouvelle   modifications sont détectées? Cette fonction est utile si vous voulez CruiseControl   pour détecter les situations où une accumulation échoue en raison de dépendances à l'extérieur   (Comme la connexion de base de données temporaire de défaut).

Autres conseils

Je pensais qu'il était possible de configurer le régulateur de vitesse à construire seulement quand il a détecté des changements dans le système de contrôle de version. Si les pauses de construction, et vous ne cochez rien dans, Cruise doit simplement vérifier le référentiel de code source, trouver aucun changement, et se rendormir jusqu'à la prochaine fois.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top