巡航控制:应该部署在任务还是发布者?

时间:2011-01-13 04:16:31

标签: cruisecontrol.net

我正在为一个项目设置Cruise Control配置。我有一个< msbuild>任务< tasks>。似乎我可以选择将我的文件部署放在< tasks>之下。或< publishers>。

逻辑上我认为它应该位于< publishers>之下但我在网上看到的这些例子都不是这样的。

部署是否应发生在< tasks>中或< publishers>?

2 个答案:

答案 0 :(得分:3)

这取决于。由于CC.Net 1.5任务和发布者完全相同,您可以将任何任务放在发布者部分。主要区别在于,如果发布者失败,您的项目不会失败(至少在CCTray中没有显示为失败)。

对于“简单”部署(例如,将dll复制到服务器),我在发布者下进行了此操作,因为此部署任务不会影响构建的成功,如果部署失败则不会那么重要。

如果部署是构建的重要部分(例如网站部署),那么我将它放在任务部分,以确保在失败时得到通知。

答案 1 :(得分:2)

部署任务应该在任务部分。

由于部署部分正在使用最终包,构建必须成功

无论构建结果如何,都会执行publisher部分。如果只想在所有任务都成功的情况下进行部署,请将部署部分编写为tasks部分的最后一项

因此,如果任务失败,则不会进行部署。

来自ccnet文档的

编辑

  

运行publishers部分   构建完成(是否通过   或失败)。这是你聚合的地方   并发布构建结果。

  

历史记录发布者和任务   在早些时候是不同的对象   ccnet的版本。现在他们是   可以互换,也可以出现   在< prebuild>中部分,<任务>   部分或< publishers>部分   的ccnet.config文件取决于   他们是否应该先跑,   在构建期间或之后。

参考:http://confluence.public.thoughtworks.org/display/CCNET/Task+And+Publisher+Blocks