2017-09-07 51 views
1

我已經設置了一個CI Build,它也在執行一些測試。VisualStudioOnline CI爲什麼在前提下構建GetSources很慢?

在GetSources步驟中,將Clean設置爲true。 我使用了一個git repo。

當我在託管代理中運行構建時,「getSources」大約需要20秒。當我在內部代理上運行構建時,「getSources」大約需要20分鐘!

我可以看到,內部代理大多數閒置在CPU和內存方面。我還驗證了網絡速度約爲50 MBit/s。

爲什麼getSources需要這麼長時間?

+0

被克隆的Git倉庫有多大? –

+0

VSTS的手動git克隆花費多長時間到本地構建服務器上? – DaveShaw

+0

回購約爲530 MB,內部系統的克隆持續約7分鐘。 – ChrisM

回答

1

Clean選項對託管代理沒有影響。

無論您爲乾淨選項設置了什麼(對於乾淨源代碼/所有構建目錄/輸出目錄等都爲false或true),當您使用託管代理隊列構建時,它始終只下載源代碼。

假設您將Clean設置爲true並清理所有構建目錄。對於私人代理,它將刪除包含源文件夾,二進制文件夾,工件文件夾等的整個工作文件夾。但對於託管代理,它只能每次下載源代碼。

因此,Hosted代理的執行時間與大多數時間的私有代理不同。

要加快建立私人代理,你可以按照以下任何方面:

  • 一套乾淨的爲假(更有效)。

    由於您在CI構建中排隊,因此如果將Clean設置爲false,那麼私人代理將只會將已修改/創建/刪除的文件更新到本地源文件夾。

  • 只有乾淨的來源,如果你仍然需要設置乾淨爲真。

    它只會清理文件和子文件夾源文件夾(s/)。但是如果你的項目足夠大,你最好使用這種方式將Clean設置爲false。

+0

如果僅更改** Clean sources **,則私有代理會在「獲取源代碼」步驟中執行多少分鐘?如果託管代理之間仍然存在較大差異,是否可以單獨顯示日誌? –

0

要回答「爲什麼?」,事實上,您正在系統和Mi​​crosoft數據中心之間複製所有這些文件。我經歷過相同的情況,併購買了一些額外的管道以適應。