2011-06-08 48 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

相關問題