2011-12-15 57 views
3

我們有CC.NET作爲持續集成環境。 CC從Git獲取每個提交,構建併發布到服務器。CruiseControl.NET - 如何在特定時間一天發佈一次構建

這是配置:

 <buildpublisher 
      <sourceDir>Path_to_dir_with_source</sourceDir> 
      <publishDir>path_to_deploy</publishDir> 
      <cleanPublishDirPriorToCopy>true</cleanPublishDirPriorToCopy> 
      <useLabelSubDirectory>false</useLabelSubDirectory> 
      <alwaysPublish>true</alwaysPublish> 
     </buildpublisher> 

但我們的QA engeneer希望得到「新鮮」的建設,每天早上,不是20次在一天:)

任何人都知道如何與CC使這個。淨?

[更新]

我們仍然需要建立每一個承諾,而是把這個承諾的Web服務器僅一天一次

+0

HTTP: //www.cruisecontrolnet.org/projects/ccnet/wiki/Schedule_Trigger – 2011-12-15 14:38:27

回答

6

使用ScheduleTrigger塊:

<scheduleTrigger time="23:30" buildCondition="ForceBuild" name="Scheduled"> 
    <weekDays> 
    <weekDay>Monday</weekDay> 
    </weekDays> 
</scheduleTrigger> 

你也可以使用cronTrigger或intervalTrigger,但對於您的情況,scheduleTrigger看起來最簡單。

http://www.cruisecontrolnet.org/projects/ccnet/wiki/Trigger_Blocks

加入到報告的評價:

你可以在一個項目區多個觸發器。

我們在我們的最後還有一個時間間隔觸發器以及一個時間觸發器。您可以根據需要添加儘可能多的觸發器。

如果要保持構建是分開的,還可以有一個完全獨立的Project塊 - 一個在Schedule觸發器上運行,另一個在間隔內運行,但存在風險,需要配置計劃。下面想到的潛在因素:

  1. 如果你這樣做,一定要檢查出的源代碼,以不同的目錄,或者你可以,如果兩者都在同一時間運行碰上衝突。
  2. 即使源代碼簽出是針對不同的目錄,如果兩個項目都發布到相同的輸出位置,您仍可以仍然遇到衝突。
+0

感謝您的回答我做了一個更新我的問題。它在你的答案中改變了什麼? – 2011-12-15 15:06:44

+0

@Evgeniy Labunskiy - 我更新了我的答案,因爲評論的回覆太長。 – David 2011-12-15 15:11:50

0

您可以添加日程表觸發,在一個特定的時間迫使你的項目的構建,即下面將在5日上午在上午運行構建每一個工作日:

<triggers> 
     <scheduleTrigger time="05:00" buildCondition="ForceBuild"> 
     <weekDays> 
      <weekDay>Monday</weekDay> 
      <weekDay>Tuesday</weekDay> 
      <weekDay>Wednesday</weekDay> 
      <weekDay>Thursday</weekDay> 
      <weekDay>Friday</weekDay> 
     </weekDays> 
     </scheduleTrigger> 
    </triggers> 
相關問題