2010-11-04 73 views
1

我們的軟件項目包含Perl,C++代碼,C &。我試圖在主/從配置中設置Hudson來管理構建&測試過程。我有一個Linux機器作爲主機運行,Windows XP(32位),Windows 7(64位),Linux機器作爲奴隸運行。構建過程涉及在特定機器上構建項目的特定部分。所以我想在Windows 7上的XP盒& 64位版本上構建我們的VC++代碼的32位版本。同樣,我必須使用gcc在Linux上編譯C代碼框。最後,在完成所有工作後,啓動Perl單元測試以確保一切正常。Hudson:將特定部分的作業綁定到特定的從屬服務器

有兩個與此相關的問題:

1)我無法揣摩出在作業的配置,我可以說&「運行構建「在Windows XP上運行的從集結32.bat」 -64.bat在Windows 7從機上「等等。簡而言之,我試圖將構建過程的特定部分與特定的從屬關聯起來。我怎樣才能做到這一點?

2)當我運行批處理文件來完成構建過程時,Hudson如何知道我的構建是否成功?我找不到任何可以捕獲構建腳本輸出的地方,分析它。或者我應該以其他方式做這件事?

感謝您的幫助。

回答

1

1)不同的奴隸

好吧,如果我理解你的權利,你需要運行在不同的機器「相同」的項目。如果它們彼此不依賴,則可嘗試使用多配置作業。您只需確保以某種方式觸發不同的構建腳本,具體取決於從站。

通常,單元測試是在構建代碼之後運行的。您描述它的方式聽起來更像是一個涉及所有三個組件的集成測試。在這種情況下,您可能需要另一份工作來運行單元(?)測試。

據我所知,除了多配置項目之外,沒有辦法讓一個作業的不同部分在不同的從服務器上運行。在這種情況下,您必須創建多個工作並鏈接它們。幾項工作的優點是能夠使用join plugin並行化構建步驟。不幸的是,裁員造成了很多混亂,更難以維護。

2)批量文件

哈德森使用錯誤級別(或退出代碼)。要保存,您應該始終通過調用exit /B <error_code>作爲腳本的最後一條命令來設置退出代碼。如果成功,則替換爲0或錯誤值爲非零值。您還應該使用call命令調用所有批處理文件,例如call mybatch.bat Param1 Param2

+0

您是否可以讓每個人都知道多配置作業是否爲您做了訣竅,或者您是否需要切分工作? – 2010-11-05 15:30:17

1

我不確定這是否可以在內完成一個工作。

但是你可以設置在不同的工作你不同的步驟(每個綁正確的從站),並通過Join Hudson Plugin控制它們的執行和協調。

alt text