如何在CruiseControl.NET中忽略电子邮件通知中的某些构建类型?

时间:2012-10-15 16:26:25

标签: email cruisecontrol.net ccnet-config

为了确保项目是否“从头开始”编译,我们每晚都会进行构建。通常这些构建是成功的,因此,关于它们的邮件不是很有用。

还有通常的构建,在有人将代码提交到版本控制之后运行。由于这些电子邮件包含提交消息和更改的文件列表,因此即使成功构建也很有用。

如何在仍然发送所有常规电子邮件的同时过滤掉成功的夜间电子邮件?最好由CruiseControl.Net表示。

以下是CruiseControl.Net ccnet.config配置文件的一部分:

<intervalTrigger name="FrequentPoll" buildCondition="IfModificationExists"  seconds="60"/>
<scheduleTrigger name="Daily" buildCondition="ForceBuild" time="$(DailyBuildStartTime)"/>

可能的线索 - 在<exec>节点执行的程序可以通过检查环境变量CCNetRequestSource来确定哪个触发器开始构建。

但是,即使CCNetRequestSource节点中有<email>可用,但我发现<email>节点无法使用它。

有人可以帮助我吗?

更新:找到相关问题 - CruiseControl.net Email

1 个答案:

答案 0 :(得分:3)

您可以使用conditional task(自版本1.6 以来可用)为您的电子邮件发布商打包,如下所示:

    <conditional>
      <conditions>
        <compareCondition>
          <value1>$[$CCNetRequestSource]</value1>
          <value2>FrequentPoll</value2>
          <evaluation>Equal</evaluation>
        </compareCondition>
      </conditions>

      <tasks>
        <email ... />
      </tasks>

    </conditional>

引用内置变量时,请注意 $ [$ CC] 语法。