2011-12-15 32 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> 
相关问题