2008-09-23 29 views
1

在使用我們的TeamCity持續集成服務器時,我們發現了一些我們不確定最佳處理方式的問題。即如何引用我們的應用程序在CI服務器上需要的外部應用程序。在持續集成中,處理外部應用程序依賴關係的最佳方式是什麼

這最初是由於依賴於Crystal Reports而發現的,因此我們在服務器上安裝了Crystal Reports,解決了即時問題。但是,隨着我們將更多的應用程序移動到CI服務器,我們發現更多的依賴關係。

這裏最好的策略是什麼?是否繼續在服務器上安裝所需的應用程序?

感謝

回答

4

儘可能使外部依賴關係成爲您的構建系統的一部分。 例如,檢查安裝程序到您的版本控制系統中,並且有一個步驟將其檢出並以靜默模式運行(許多安裝程序有時使用命令行支持沒有用戶操作的模式)。

這樣,如果您需要爲分支機構設置另一臺生成機器,或者只是爲了新硬件,所有的操作都是可重複的。

0

如果你使用Maven構建,你可以在pom.xml文件中定義您的依賴。如有必要,他們將自動下載。

0

我不知道如果我跟着正確...

我假設你的應用程序依賴於這個外部的應用程序,同時建立?在這種情況下,應該在機器上執行CI ...

1

如果您的構建需要實際的應用程序來完成構建,那麼您應該繼續在構建服務器上安裝該應用程序。

如果您只需要從應用程序中引用dll或程序集,那麼我們在我們公司所做的就是創建特定應用程序所需引用的可安裝「SDK」,並將它們安裝到我們的開發和構建機器上在我們的解決方案參考的着名庫目錄中。

在構建機器上,我們的構建前步驟會安裝正確版本的依賴關係,然後在完成後清理它們。

最近,我們已經開始將虛擬機用於構建過程激活的構建機器。這些虛擬機將SDK作爲預生成安裝在它們上面,然後在生成後恢復到它們的快照狀態。我們有一些幾乎不可能卸載的依賴關係,因此每次都有一個乾淨的起點。

相關問題