2

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

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

  1. 轮询持续构建并仅在发生持续构建时构建夜间构建 - 可能使用某些令牌系统(连续构建设置令牌,每晚清除令牌)。

  2. 运行预构建任务以将源代码恢复到上次构建时间

我倾向于第二种选择,因为它解耦了构建脚本,但这似乎是一项艰巨的任务。

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

补充资料:

CI 构建是在一个配置中快速构建解决方案,并且可能会运行一些快速的单元测试。

每晚构建清理构建环境,构建软件,打包到安装程序中,运行扩展测试,标记源代码存储库,将安装程序部署到服务器共享以供手动测试人员获取,并通过电子邮件向测试团队发送可测试的构建已经完成。

我只希望在白天有任何签入的情况下进行夜间构建,这样测试人员就不会为基本上相同的构建重复发送电子邮件所困扰。

4

2 回答 2

3

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

<triggers>
  <intervalTrigger seconds="60" name="Continuous" />
  <scheduleTrigger time="23:30" buildCondition="IfModificationExists" name="Scheduled">
      <weekDays>
        <weekDay>Monday</weekDay>
      </weekDays>
  </scheduleTrigger>
</triggers>
于 2009-07-30T12:52:50.603 回答
1

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

我在夜间构建(最好称为完整构建)和 WriteModification/ReadModification 对中使用带有 scheduleTrigger 和 prjectTrigger 的 MultiTrigger 来传播修改历史记录,就像在这个问题中一样。

于 2009-08-20T21:15:22.247 回答