我們的開發週期維護多個併發發佈分支。合併之前生成Jenkins git插件選項不觸發
我們希望有一個可靠的方法在循環中儘早公開發布分支中的合併衝突。
在Jenkins的構建工作中,我們指定了一個發佈*作爲要構建的分支,並在構建開始之前指定git插件選項「合併之前構建」。
我的期望是這個插件會合並全部發現分支,然後開始構建每個發佈分支。
我設置了一個虛擬回購來測試這個。回購有一個文本文件。有3個分支:
主(主) release1(從主拍攝) release2(從主拍攝)
我更新release1和release2文件中的同一行刻意製造的合併衝突,我已經證實存在。
現在,當我創建這個工作時,我期望Jenkins嘗試將release1和release2合併到master中,在那裏它會遇到merge衝突並失敗,這就是我們想要的。
但是,詹金斯似乎並沒有嘗試這一點,儘管設置了「合併之前合併」選項。
Fetching upstream changes from [email protected]:xxxxxxx/test_repo.git
> git --version # timeout=10
> git fetch --tags --progress [email protected]:xxxxxxx/test_repo.git
+refs/heads/*:refs/remotes/origin/*
Seen branch in repository origin/master
Seen branch in repository origin/release1
Seen branch in repository origin/release2
Seen 3 remote branches
Checking out Revision 5b75c954f334a2fc6c683cd7304d4d84826f02cd
(origin/release2, origin/master)
> git config core.sparsecheckout # timeout=10
> git checkout -f 5b75c954f334a2fc6c683cd7304d4d84826f02cd
> git rev-list 5b75c954f334a2fc6c683cd7304d4d84826f02cd # timeout=10
> git rev-list 5b75c954f334a2fc6c683cd7304d4d84826f02cd # timeout=10
Set build name.
New build name is '#8 '
[build-sharknado-app] $ /bin/sh -xe /tmp/hudson1678313403112351764.sh
+ cat file.txt
x=7
工作成功,我們看不到合併衝突。
爲什麼多個版本*分支合併到master不會發生?
'git checkout -f 5b75c954f334a2fc6c683cd7304d4d84826f02cd'。特定的提交已簽出,因此它處於分離的HEAD狀態。儘管'origin/master'指向'5b75c954f334a2fc6c683cd7304d4d84826f02cd',分支'master'沒有被檢出,因此不在本地存在。這可能是原因。 – ElpieKay
這似乎是問題,但我不知道爲什麼提交正在檢出。我將「origin/release *」指定爲「要建立的分支」選項,並且存在這些分支。但是,只有版本2被合併爲主版本的一部分。 –