【问题标题】:CCNet Scheduled build only if another project successfully built仅当另一个项目成功构建时 CCNet 计划构建
【发布时间】:2013-02-14 23:44:47
【问题描述】:

我正试图让 CCNet 在预定时间构建一个项目,但前提是自上次成功构建另一个项目。我有以下块:

<triggers>
  <multiTrigger operator="And">
    <triggers>
      <projectTrigger project="Trunk Integration Tests">
        <triggerStatus>Success</triggerStatus>
        <innerTrigger type="intervalTrigger" seconds="30" buildCondition="IfModificationsExist" />
      </projectTrigger>
      <scheduleTrigger time="15:00" buildCondition="ForceBuild" name="Scheduled" />
    </triggers>
  </multiTrigger>
</triggers>

避免任何关于我为什么要这样做的问题;我们有每小时运行一次的集成测试。上述代码来自的构建是一个部署构建,它会下拉代码、编译并将代码推送到我们的一台服务器。我们有用于开发服务器、QA 和登台的部署版本。

我遇到的问题是昨天下午 4:45 触发了这个构建,就在集成构建成功之后。 CCNet 说构建原因是Build (ForceBuild) triggered from Scheduled

这里发生了什么,我怎样才能让它像我描述的那样工作?

【问题讨论】:

    标签: continuous-integration cruisecontrol.net


    【解决方案1】:

    我认为在这种情况下可以避免&lt;multiTrigger&gt;。您可以只创建一个&lt;projectTrigger&gt;,并将其&lt;innerTrigger&gt; 设置为&lt;scheduleTrigger&gt; 的类型。像这样的:

    <triggers>
      <projectTrigger project="Trunk Integration Tests">
        <triggerStatus>Success</triggerStatus>
        <innerTrigger type="scheduleTrigger" time="15:00" buildCondition="IfModificationsExist" name="Scheduled" />
      </projectTrigger>
    </triggers>
    

    【讨论】:

    • 感谢您的回答,我会尝试并报告。
    • 依赖项目永远不会触发。相关触发器块: Success 有什么想法吗?
    【解决方案2】:

    我使用 triggerFirstTime true 按计划间隔触发。

        <projectTrigger project="MyProject">
            <triggerStatus>Success</triggerStatus>
            <triggerFirstTime>true</triggerFirstTime>
            <innerTrigger type="scheduleTrigger" time="10:30" buildCondition="ForceBuild" name="Scheduled" />
        </projectTrigger>
    

    【讨论】:

      猜你喜欢
      • 2016-07-15
      • 1970-01-01
      • 1970-01-01
      • 2011-04-17
      • 2011-05-30
      • 2023-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多