CruiseControl.NET每晚构建自上次构建标签以来的IfModificationExists

时间:2009-07-29 20:42:06

标签: cruisecontrol.net nightly-build

我正在使用一台服务器连续和夜间构建同一个项目;但是我希望夜间构建只在白天存在修改时才构建。我希望通过约束两个版本使用相同的工作文件夹来实现这一目标。

我正在考虑的两个选项是:

  1. 轮询连续构建,只有在连续构建发生时才构建每晚构建 - 可能使用一些令牌系统(连续构建集令牌,每晚清除令牌)。

  2. 运行预建任务以将源代码还原为上次构建时间

  3. 我倾向于第二个选项,因为它解耦了构建脚本,但它似乎是一个更难的任务。

    这样做的建议和提示将不胜感激!

    已添加信息:

      

    CI构建是快速构建的   解决方案在一个配置和   也许会运行一些快速的单元测试

         

    每晚构建清理构建   环境,构建软件,打包成一个   安装程序,运行扩展测试,标签   源代码存储库,部署   安装程序到服务器共享   手动测试人员接听和发送电子邮件   测试团队是一个可测试的构建   已经成了。

         

    我只想要   如果有的话,每晚都会发生   在白天进行的任何检查,以便测试人员不会受到基本相同构建的重复电子邮件的困扰。

2 个答案:

答案 0 :(得分:3)

我可能过度简化了这项任务,但你不能简单地在项目上设置两个触发器吗?连续构建的一个间隔触发器和一个带有每晚构建的IfModificationExists条件的调度触发器。

<triggers>
  <intervalTrigger seconds="60" name="Continuous" />
  <scheduleTrigger time="23:30" buildCondition="IfModificationExists" name="Scheduled">
      <weekDays>
        <weekDay>Monday</weekDay>
      </weekDays>
  </scheduleTrigger>
</triggers>

答案 1 :(得分:1)

我对我的新解决方案感到满意......

我使用带有scheduleTrigger的MultiTrigger和每晚构建的prjectTrigger(更好地调用完整版本)和WriteModification / ReadModification对来传播修改历史记录,如this question