如何在构建之后清除我的CruiseControl.Net工作目录?

时间:2011-06-08 15:47:50

标签: cruisecontrol.net

我希望在部署站点后清除CruiseControl.NET构建中的工作目录,因为空间是一个问题,并且没有要求保留它。

目前所有东西都在一台机器上设置(这种情况不太可能改变),这既是Mercurial存储库服务器,也是测试Web服务器和CruiseControl.NET构建服务器。 所以在C:\ Repositories \和C:\ inetpub \ wwwroot \我们每个网站都有一个文件夹。同样在C:\ CCNet \ Projects中,每种类型的构建(测试和实时)每个网站都有一个文件夹 - 这意味着我们在服务器上每个网站至少有4个副本,每个站点大约100mb X 100个站点这会增加很多磁盘空间。

我认为我想要做的就是在成功构建时简单地删除工作目录,只需要5-10秒即可完全获得一个新副本(构建服务器与hg在同一台机器上的一个小优势)服务器)并且只保留一些相对活跃的项目。在100个左右的网站中,我们一周的工作时间不超过10个(5人团队)。 我已经尝试了一个运行cmd.exe到/ del / s / q工作目录文件夹的任务。有时这将成功完成,否则它将失败,并显示“进程无法访问该文件,因为它正被另一个进程使用”。当它完成时,构建会再次启动,大概是因为找不到WD并且需要重新创建它,所以我发现我在那里处于一个永无止境的循环中。

有什么方法可以减少运行这些构建所需的空间量,还是我需要整理一个商业案例来增加服务器的托管成本?

1 个答案:

答案 0 :(得分:0)

您需要创建自己的ccnet任务并在其中构建逻辑。

  1. 创建一个名为ccnet的新项目。[pluginname] .plugin。
  2. 使用artifact cleanup task source作为基础快速上手
  3. 将基本目录从result.ArtifactDirectory更改为您需要的基本目录
  4. 编译并将\bin\Debug\ccnet.[pluginname].plugin.dll放置到c:\Program Files\CruiseControl.NET\server或安装CCNET的任何位置。
  5. 重启服务,您应该能够以与工件清理任务非常相似的方式使用您的任务