2014-09-10 79 views
17

我正在與Jenkins CI一起工作,並且正在嘗試正確配置我的作業以使用git。Jenkins Git Plugin在構建作業之前不會拉動最新更改

我已經安裝了git插件併爲我的其中一個作業進行了配置。當我構建這個工作時,我希望它能夠爲我指定的分支提供最新的更改,然後繼續構建過程的其餘部分(例如,單元測試等)。

當我看到控制檯輸出,我看到

> git fetch --tags --progress ssh://[email protected]/Util +refs/heads/*:refs/remotes/origin/* 
> git rev-parse origin/some_branch^{commit} 
Checking out Revision <latest_SHA1> (origin/some_branch) 
> git config core.sparsecheckout 
> git checkout -f <latest_SHA1> 
> git rev-list <latest_SHA1> 

我看到插件獲取並簽出正確的提交哈希值,但測試運行時,它好像回購沒有更新在所有。 如果我在Jenkins進入存儲庫,那麼我會在那裏看到最新的更改從未被取消。

它試圖建立之前不應該拉?

我在我的Jenkins機器上安裝了git 1.8.5,這是推薦的版本。 https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin

在檢查了其他類似的聲音問題後,他們的答案對我的問題沒有幫助。

回答

5

我相信詹金斯拉動變化並建立它自己的tmp目錄。因此,儘管Jenkins在自己的沙箱中正確構建新代碼,但您的存儲庫目錄並未更新。

我對這個解決方案是增加一個「混帳拉」的步驟在我的構建過程中,像這樣:

當一個新的提交傳遞到我的GitHub庫:
1.建立我的項目

如果成功的話,請執行以下後生成步驟:
1.執行shell:

cd /your/repo/directory/ 
git pull 

可以很明顯的修改「混帳拉」命令做任何你甲腎上腺素編輯做如果'拉'不適合你。

+0

謝謝,這讓我走上了正軌。最終爲我工作的是:git pull -s遞歸-X他們的起源myBranch – gorbysbm 2016-05-16 07:06:36

16

涉及我到場景,沒有得到淨化後,用於工作區:

+0

這實際上是正確的方法。所以我想知道爲什麼這個答案不是選定的答案。 – maximi 2016-10-04 16:05:08

+1

我不明白爲什麼這不是默認行爲... – ambe5960 2017-08-10 22:54:34

+0

此選項在2.6上可用。 – Abhijeet 2017-08-11 03:55:39

0

我知道問題是舊的,但有另一種方法來做到這一點。在構建環境部分,選擇「刪除工作區建設開始前

見下面的截圖中,

enter image description here

這將每次實際清理工作區,因此你會得到更新的代碼。

相關問題