Como posso parar a reconstrução do controle de cruzeiros após uma compilação fracassada?

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

Pergunta

Voltei do fim de semana para descobrir que alguém **** ahem **** havia perdido um compromisso de arquivo na última coisa na tarde de sexta-feira ... o controle de cruzeiro está se divertindo e tentou reconstruir a cada cinco minutos desde então, apesar de nenhum começo adicional.

Isso significa que meus colegas e eu recebemos aproximadamente seis e -mails do Hojillion do Cruise Control. Um único email de falha seria mais do que suficiente para nos notificar.

Existe alguma maneira de interromper o controle de controle de cruzeiro no fracasso, pelo menos até que ocorra um novo compromisso?


Editar: Adicionado 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>

Foi útil?

Solução

Não é buildafterfailed atributo de <project> a coisa que você precisa?

Descrição do atributo no Referência de configuração do CruiseControl:

O CruiseControl deve continuar construindo, apesar de ter falhado e que nenhuma nova modificação seja detectada? Esse recurso é útil se você deseja que o CruiseControl detecte situações em que uma compilação falhe devido a dependências externas (como conexão temporária de falha no banco de dados).

Outras dicas

Eu pensei que era possível configurar o controle de cruzeiro para construir apenas quando detectou alterações no sistema de controle de versão. Se a construção quebrar e você não verificar nada, o Cruise deve simplesmente verificar o repositório de código -fonte, não encontrar alterações e voltar ao sono até a próxima vez.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top