是否可以自定义CruiseControl.NET项目的强制构建?

时间:2015-02-06 14:52:33

标签: c# git msbuild continuous-integration cruisecontrol.net

亲爱的无所事事的stackoverflow忍者,我需要你的帮助!

我有一个CruiseControl.NET项目,可以构建C#解决方案并执行一些脚本。每次我使用" Debug"进行提交时,它都会构建项目。 MSBuild配置。

我需要的是让CC使用" Debug 2"来构建我的项目。配置,当我进行强制构建时,它应该继续使用" Debug"在git commit上构建时的配置。

是否可以进行此类动态配置?如果是的话,我应该怎么做?

3 个答案:

答案 0 :(得分:0)

好的,我在CC文档中找到了条件。

<conditional>
  <conditions>
    <buildCondition>
      <value>ForceBuild</value>
    </buildCondition>
  </conditions>
  <tasks>
    <!-- Tasks to perform if condition passed -->
  </tasks>
  <elseTasks>
    <!-- Tasks to perform if condition failed -->
  </elseTasks>
</conditional>

答案 1 :(得分:0)

另一种选择是在构建脚本中检查构建条件。 构建脚本可能是nant,msbuild,批处理,.... 这些语言通常为if,while,...构造提供比ccnet.config文件本身更多的选项。

这使ccnet.config更加干净,所有魔法都发生在构建脚本中。它还可以在不影响构建服务器的情况下更轻松地测试更改。

查看传递给他们的属性:

http://www.cruisecontrolnet.org/projects/ccnet/wiki/Integration_Properties

答案 2 :(得分:0)

使用ccnet参数;

http://cruisecontrolnet.org/projects/ccnet/wiki/Parameters

例如:

<booleanParameter>
 <name>Configuration</name>
 <true name="Debug2">Yes</true>
 <false name="Debug">No</false>
 <display>Configuration</display>
 <description>Do you want to build Debug 2?</description>
 <default>Debug</default>
 <required>false</required>
</booleanParameter>

使用它:

<tasks>
 <nant>
  <executable>nant.exe</executable>
  <buildArgs>-D:config=$[Configuration|Debug]</buildArgs>
 ...
 </nant>
</tasks>

config作为属性传递给Nant。