2010-05-16 72 views
3

我從週末回來發現有人**** ahem ****星期五下午錯過了文件提交的最後一件事情...巡航控制一直很有趣,並且試圖每五分鐘就重新構建一次那麼儘管沒有進一步的承諾。如何在構建失敗後停止巡航控制重建?

這意味着我和我的同事已經收到來自巡航控制的大約六個hojillion電子郵件。一封失敗的電子郵件就足以通知我們。

有沒有辦法阻止巡航控制樓在失敗時建立,至少在發生新的提交之前?


編輯新增配置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="[email protected]" subjectPrefix="[BUILD]" buildResultsURL="http://XXXXX/dashboard/build/detail/project" mailHost="mail.EXAMPLE.com" skipUsers="true" > 
    <failure address="[email protected]" /> 
    <success address="[email protected]"/> 
</email> 
</publishers> 

回答

2

是不是buildafterfailed屬性<project>你需要的東西?

CruiseControl config reference屬性的描述:

是否應CruiseControl的不斷建設,即使它已經失敗,並沒有檢測到新的 修改?如果您希望CruiseControl 檢測由於外部依賴項 (如暫時失敗的數據庫連接)而導致構建失敗的情況,此功能非常有用。

+0

謝謝,我誤解配置中的那部分 - 我認爲它說它默認不重建。現在測試。 – RodeoClown 2010-05-17 23:06:47

+0

工作過,很多謝謝:) – RodeoClown 2010-05-17 23:15:26

1

我認爲這是可能配置巡航控制,只有建立在它檢測到的版本控制系統的變化。如果構建中斷,並且您沒有檢查任何內容,則Cruise應該簡單地檢查源代碼存儲庫,找到沒有更改,然後再次進入休眠狀態。

+0

我看到它偶爾進入循環時,有一個錯誤檢查源控件的東西。例如,如果某人檢入之前沒有簽入的文件(例如,錯誤地檢入.exe或其他文件),就會發生這種情況。但是我很確定這已經在最新版本中修復了...... – 2010-05-16 23:05:35

+0

它*通常*只在檢測到更改時才生成,但如果生成失敗,則會在5分鐘後再次嘗試...以及5分鐘後...然後5分鐘...等等直到我的收件箱溢出 – RodeoClown 2010-05-16 23:09:18

+0

RodeoClown:我想說你有一個配置問題,因爲那是不可預料的行爲。你可以發佈項目的配置文件部分嗎? – 2010-05-16 23:32:56