我正在为一个项目设置Cruise Control配置。我有一个< msbuild>任务< tasks>。似乎我可以选择将我的文件部署放在< tasks>之下。或< publishers>。
逻辑上我认为它应该位于< publishers>之下但我在网上看到的这些例子都不是这样的。
部署是否应发生在< tasks>中或< publishers>?
答案 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