簡體   English   中英

根據git子模塊中的更改觸發TeamCity構建

[英]Trigger a TeamCity build on changes in a git submodule

如何設置TeamCity觸發器以基於git子模塊中的更改開始構建?

當前,您必須更新子模塊提交指針以觸發主存儲庫中的構建,以便TC可以在主存儲庫中注冊更改。

更新資料

問題在於子模塊應該始終跟蹤分支主控。 AFAIK這不能通過git本身來實現。 我只希望構建可以克服git的限制。

這不是一個很好的解決方案,但它的目標是使用子模塊的尖端來構建項目,而無需手動更新子模塊。 (一個鈎子可能會這樣做)

在以子模塊為主倉庫的基礎上創建單獨的構建配置,並設置命令行構建步驟以克隆maste-repo,pull / update子模塊並將更新后的子模塊指針推回master-repo。

rm -r master-repo
git clone git@github.com:xxx/master-repo.git
cd master-repo
git status
git submodule update --init 
git config -f .gitmodules submodule.submodule-repo.branch master
cd submodule-repo
git pull origin master
git status
cd ..
git add submodule-repo
git commit -m "sub module update"
git push origin master

我是git的新手,因此可能可以對其進行優化。

不能這樣做,因為TeamCity(和git)無法知道有更新。 存儲庫中的子模塊條目僅指向提交。

有什么更新嗎? 此提交可以有多個分支和提交。 只有可以決定將子模塊更新到的位置。

我一直在嘗試使用TeamCity實現相同的目標,但是很快得出結論,這樣做是沒有意義的。 您的TeamCity構建應該基於主存儲庫中的內容,並且正如您所說的那樣,GIT子模塊的工作方式意味着要由主存儲庫來更新指向子存儲庫中新提交的指針,這將觸發構建。

最重要的是,我不希望TeamCity構建無法從源代碼重新創建的內容,即克隆主存儲庫不會反映TeamCity實際構建的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM