是否可以在CC.NET项目之间传递参数?

时间:2014-10-13 10:57:04

标签: cruisecontrol.net

我在CC.NET中配置了2个这样的项目

BuildApp RunSmokeTests

每当RunSmokeTests项目完成BuildApp时,

Success都会使用项目触发器启动。 当冒烟测试失败时,我希望能够发送包含我们应用版本号(${CCNetLabel}项目BuildApp)的电子邮件。

我无法找到办法。我认为这应该是在CC.NET中构建的。我想确保在我提出自己的解决方案之前CC.NET中没有这样的功能。

1 个答案:

答案 0 :(得分:1)

您可以使用remoteProjectLabeller使用与BuildApp项目相同的标签来标记SmokeTests项目。

否则,您可以在BuildApp项目的publishers部分使用ForceBuildPublisher,您可以在其中传递自定义参数。

如果我建议选项,我会选择后者,因为remoteProjectTrigger存在潜在问题,这可能意味着当BuildApp失败时,您的RunSmokeTests项目可能会触发。它的效率也低于ForceBuildPublisher

例如

<forcebuild>
 <project>RunSmokeTests</project>
 <serverUri>tcp://buildserver:21234/CruiseManager.rem</serverUri>
 <integrationStatus>Success</integrationStatus>
 <!-- <enforcerName>BuildApp has finished </enforcerName> -->
 <parameters>
  <namedValue name="$BuildAppLabel" value="$Label" />
 </parameters>
</forcebuild>

有一个错误,但enforcerName没有通过,所以不要依赖该属性。

在RunSmokeTests项目中,您应该能够读出电子邮件的$ BuildAppLabel。