2011-06-08 49 views
1

由于空间是个问题,并且没有必要保留它,我想在部署网站之后清除CruiseControl.NET内部的工作目录。如何在构建后清除我的CruiseControl.Net工作目录?

目前所有东西都在1台机器上(这不太可能改变),所以这是作为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并且需要重新创建,所以我发现我处在一个永无止境的循环中。

有没有我可以减少空间来运行这些构建所需的量或做我需要把一个商业案例增加的托管费用为我们的服务器的任何方式?

回答

0

您需要创建自己的CCNET任务,并建立逻辑进去。

  1. 创建一个名为ccnet。[pluginname] .plugin的新项目。
  2. 使用artifact cleanup task source为基础,能很快去
  3. 更改基目录result.ArtifactDirectory,无论你需要它是
  4. 编译并放置到\bin\Debug\ccnet.[pluginname].plugin.dllc:\Program Files\CruiseControl.NET\server安装CCNET地方。
  5. 重新启动该服务,你应该能够使用你的任务非常相似的方式作为文物清理任务
+0

好主意,但文物清理出版商似乎只文物目录中工作,这就是在与工作目录相同的级别。我无法将它用于工件以外的任何工作。 – 2011-06-10 08:36:31

+0

@西蒙马丁。可惜它没有用。我想唯一的其他选择是创建自己的cc.net任务。这非常简单。我只是想更新答案 – marto 2011-06-10 09:02:25

+0

Yowser--这比我认为解决方案会减少创建构建所用的空间量更严重。尽管如此,在为更多磁盘空间整合商业案例方面可能会有用。 – 2011-06-14 08:22:41

相关问题