2011-11-17 76 views
1

我正在使用CruiseControl來管理我的構建。不過,排隊幾個版本時遇到了一個小問題。排隊一個額外的構建工作正常,但當試圖排隊多個額外的構建時,構建將失敗。在CruiseControl中排隊

有沒有辦法增加CruiseControl中的隊列大小?

當開發人員想要在buildserver上構建某些東西時,他們會通過pythonscript將一些信息發送到服務器上的另一個pythonscript。該腳本使用必要的信息更新config.xml,並用http://localhost:8000/invoke?operation=reloadConfigFile&objectname=CruiseControl+Manager%3Aid%3Dunique強制更新配置。然後使用http://localhost:8000/invoke?operation=build&objectname=CruiseControl+Project%3Aname%3D%22"+productName命令強制構建。

這是將項目添加到構建隊列的正確方法嗎?

從CruiseControl調用的buildscript需要ClearCase的版本ID,必須爲每個版本更新。因此,config.xml中項目的配置也必須更改。

回答

1

我發現了這個問題。當開發人員想要在服務器上構建一些東西時,頂級產品將通過ClearCase加載到構建服務器。這個頂級產品反過來有自己的配置文件,其中指出其所有的子產品。問題很簡單,首先爲每個項目重寫配置文件,使得除第一個和最後一個之外的所有項目都卸載。與ClearCase有更多關係,實際上比CruiseControl:P

1

通常情況下,您的config.xml文件中配置了所有項目(大多數情況下不會改變)。

正如您在評論中所述,您必須更新buildscript的某個ID。

也許你應該更新一個屬性文件或類似的每個項目,包含此ID。這個文件可以通過python腳本進行編輯,以便不斷更新config.xml將不再需要。

我認爲巡航控制的更新/重新啓動會導致失敗的行爲。