CruiseControl.NET - 如何在特定时间一天发布一次构建

Evg*_*kiy 3 cruisecontrol.net asp.net-mvc-3

我们将CC.NET作为持续集成环境.CC从Git获取每个提交,构建并发布到服务器.

这是配置:

        <buildpublisher
            <sourceDir>Path_to_dir_with_source</sourceDir>
            <publishDir>path_to_deploy</publishDir>
            <cleanPublishDirPriorToCopy>true</cleanPublishDirPriorToCopy>
            <useLabelSubDirectory>false</useLabelSubDirectory>
            <alwaysPublish>true</alwaysPublish>
        </buildpublisher>
Run Code Online (Sandbox Code Playgroud)

但我们的QA engeneer希望每天早上都能获得"新鲜",而不是每天20次:)

谁知道如何用CC.NET做到这一点?

[UPDATE]

我们仍然需要构建每个提交,但是这个提交只能在一天内完成一次

Dav*_*vid 6

使用ScheduleTrigger块:

<scheduleTrigger time="23:30" buildCondition="ForceBuild" name="Scheduled">
  <weekDays>
    <weekDay>Monday</weekDay>
  </weekDays>
</scheduleTrigger>
Run Code Online (Sandbox Code Playgroud)

您也可以使用cronTrigger或intervalTrigger,但对于您的情况,scheduleTrigger似乎最简单.

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

添加以解决评论:

您可以在一个Project块中拥有多个触发器.

我们有一个Interval Trigger和一个Schedule Trigger.您可以根据需要拥有尽可能多的触发器.

如果您希望将构建保持独立,您还可以拥有一个完全独立的Project块 - 一个在Schedule触发器上运行,一个在一个间隔上运行,但存在风险,并且需要计划配置.以下是潜在的考虑因素:

  1. 如果这样做,请确保将源代码签出到不同的目录,否则如果两个目录同时运行,则可能会遇到冲突.
  2. 即使源代码签出是针对不同的目录,如果两个项目都发布到同一输出位置,您仍然可能会遇到冲突.