1

我在 cc.net 中为同一个 Web 应用程序设置了 2 个项目。一个使用间隔触发器并且工作正常的持续集成项目和一个使用 cronTrigger 的“夜间构建”项目。nightly build 本质上是构建和部署登台/测试服务器,这样人们就可以在每次有人进行提交时进行测试而不会因重建而中断。我想做的是让它每天早上 6 点自动构建,如果您想在其他时间构建,则允许强制构建。我使用的 cron 表达式是0 6 * * *,我认为这是正确的,并且似乎在 cc.net 中正确设置了“下一个构建时间”。我遇到的问题是,如果我将构建条件设置为 IfModificationExists 那么如果自上次构建以来没有任何修改,它不会在预定时间构建,这很好,但是一旦有人提交,它就会构建,这不是我想要的,我希望它等到下一个预定时间。所以我尝试将构建条件设置为 ForceBuild,我认为无论是否有任何提交,它都会让它每天早上 6 点构建,但它似乎并没有让它一遍又一遍地不断构建。我错过了什么做错了?

编辑 不确定这是否真的提供了任何更有用的信息,但需要进一步评论。

<triggers>
    <cronTrigger>
      <buildCondition>IfModificationExists</buildCondition>
      <cronExpression>0 6 * * *</cronExpression>
    </cronTrigger>
  </triggers>

或者

 <triggers>
        <cronTrigger>
          <buildCondition>ForceBuild</buildCondition>
          <cronExpression>0 6 * * *</cronExpression>
        </cronTrigger>
      </triggers>
4

2 回答 2

1

如果您想每天跑步,请使用

<scheduleTrigger time="06:00" buildCondition="ForceBuild" name="Scheduled"></scheduleTrigger>

有人,知道如何解决这个问题吗?我每月运行一次类似的问题。

于 2011-10-05T14:56:25.197 回答
1

取自:http ://build.sharpdevelop.net/ccnet/doc/CCNET/Cron%20Trigger.html

一个表达式由 5 个空格分隔的字段组成:MINUTES HOURS DAYS MONTHS DAYS-OF-WEEK

例子:

此触发器将在每个月的第 5 天执行

<triggers>
    <cronTrigger>
        <cronExpression>0 0 5 * *</cronExpression>
    </cronTrigger>
 </triggers>

此触发器将在每天早上 5 点执行

<triggers>
    <cronTrigger>
        <cronExpression>0 5 * * *</cronExpression>
    </cronTrigger>
</triggers>


问候,德扬

于 2013-06-13T05:41:53.060 回答