2016-04-18 136 views
1

我們有大量的組件,並且每次構建開始時,TeamCity都會檢查所有VCSRoots的更改。我們有大約200多個VCSRoots。這爲構建的啓動時間增加了相當長的時間。有沒有辦法阻止TeamCity檢查所有VCSRoots?

那麼,有沒有什麼方法可以防止這種情況,並且只需要TC檢查附加到配置的回購?

回答

1

在每次構建之前,TeamCity會直接收集與構建配置相關的所有VCS根中的更改,並且還會配置來自依賴項的所有根,以及配置爲Versioned settings的根。

如果可能,您可以嘗試減少VCS根的數量。建議使用少量的VCS根目錄,指向存儲庫的根目錄,並使用checkout rules來定義要檢出的內容。

+0

我不知道依賴........這可能是炸彈。謝謝。如果是這樣,我會回來的。 – pms1969

+0

它是依賴關係,並沒有什麼可以做的。 :-( – pms1969

1

對於您的觀點,是的,​​會一直監控VCS Roots創建之後。

一旦VCS根被配置,TeamCity的定期查詢爲新的變化版本 控制系統,並顯示在Build 配置具有連接根部的變化。

你提到你有200多個VCS Roots。

問題:你有200多個版本嗎?

如果是,那麼我建議簡化您的根目錄以僅查看回購樹中的必要文​​件夾,或者重用VCS Roots

TeamCity分別對每個VCS根目錄執行與VCS相關的操作, 因此建議重複使用具有相同設置的VCS根目錄。

如果不是,我假設情況並非如此,則刪除未使用的根。您可以從「管理員」選項卡中查看哪些VCS根目錄未被使用。

有了這麼多的版本,你應該使用幾個代理。如果你不是,那麼我建議增加一些。我認爲免費許可證允許多達三個。

+0

是的,我們有200多個版本。整合在桌面上,但目前不可能。 VCSRoots都查看自己的樹,沒有監視外部樹。 VCSRoots被參數化,所以也許就是這個問題。我會檢查的。 24個代理商。 – pms1969

+0

好吧,當你等待整合並擁有24位代理商時,我認爲你可以負擔得起將Teamcity服務器作爲代理本身來消除,並讓它只充當服務器。這肯定會減輕負荷。它仍然會監控所有的根源,但不會花費任何時間運行構建,而是在各自的合格代理中啓動它們。只是一個想法。 –

+0

正是它在做什麼。它僅僅是一個超級動力機器,但目前它只有這樣做,並且考慮到構建鏈的依賴關係,它有時會以及時的方式做到這一點。 :-s – pms1969

1

解決此問題的方法是禁用TeamCity檢查VSC根目錄中的更改,而是使用Web鉤子調用通知TeamCity源代碼管理存儲庫中存在更改。然後你也可以配置一個觸發器,只在某個目錄中的文件發生變化時觸發你的構建。希望這可以幫助。

+0

同意了,沒有想到這一點,但我們不能控制顛覆回購,所以不是真正的選擇。 – pms1969

相關問題