2011-10-02 40 views
3

我們有一個使用Jenkins配置的自動構建系統,與Gerrit集成。今天的瓶頸之一是,由於存儲庫大小的原因,Jenkins需要3.5分鐘才能完成每個構建的「git clone」。使用「git歸檔」進行相同的結賬大約需要12秒。如何配置Jenkins使用git歸檔而不是git clone與Gerrit?

Jenkins的gerrit插件可以配置爲使用「git archive」嗎?這將顯着縮短我們的構建時間。

+0

git插件源代碼的快速掃描說「不」,因爲我相信這是克隆,而不是Gerrit觸發器插件。然而,可能的好處是git插件的「快速遠程輪詢」選項(在高級下) - 雖然我不確定這是否爲您節省了初始克隆。 –

+0

據我所知,普通的git插件只能「拉」變化。一個完整的克隆似乎只是過大。然而,即使對於一個克隆來說,3分鐘似乎也太多了。確保你不使用'http:'作爲協議(等) – KingCrunch

+0

它目前爲每個結帳做了一個克隆 - 3分鐘似乎很長一段時間,但它在存儲庫中的歷史長達5年,每個結賬超過300 MB 。 – jthompson

回答

5

儘管它不會出現使用GIT中插件的未修改版本是可能的,我並在兩個步驟中實現這一點:

1) Change SCM to "None" for the particular job. 
2) Add a build step at the beginning to checkout using "git archive" 

下面是步驟2)的樣品。

git archive --format=tar --remote=git://host/repo ${GERRIT_REFSPEC} > ${BUILD_ID}.tar && tar xvf ${BUILD_ID}.tar && rm ${BUILD_ID}.tar 
+0

但這意味着我們不能使用SCM輪詢。任何選擇? – Sebastian