2012-11-30 25 views
2

請問能否幫助我在jenkins中使用工作流程。我們有子模塊s1的主存儲庫rep1。子模塊已被添加到rep1並具有特定的提交編號。我們經常致力於s1。但jenkins在更新rep1時沒有看到新的更改,因爲s1具有舊的提交編號。jenkins:在子模塊更新時使用submodule的最新提交重建主存儲庫

當s1由其他開發人員更新時,我們如何配置jenkins自動重新構建rep1,其最新更改來自s1?

+0

也許我們應該使用子樹而不是模塊?有沒有人有jenkins和git子樹的經驗? – OJ287

回答

0

當您提交s1時,您需要確保將指針更新爲r1中的正確提交哈希並推送,否則r1仍指向舊版本的s1。

例子:

~/r1 <---- main project 
~/r1/s1 <---- submodule in your project 

<更改S1>

# you commit your changes for whatever 
~/r1/s1: git commit -am 'major commit not doing single adds' 

現在,切換到〜/ R1

~/r1: git add ./s1 
~/r1: git commit -m 'updating pointer for submodule in changes in s1' 

現在,當你把你的變化,詹金斯將看到你告訴它你在主存儲庫中更新了你的指針,你需要做一個全新的rebui ld(假設詹金斯將對r1上的任何更新進行重建)。

+0

不幸的是,它需要在每次提交到s1後在r1中進行手動更新。這是不可接受的。 – OJ287

+0

你總是可以在git commit hook之後寫一些自動完成上述功能的東西,但就子模塊而言,這是通知主存儲庫發生更新的方式。您可能可以在Jenkins中設置一些內容來查看主模塊和子模塊存儲庫,但這需要一點挖掘。 – tunagami

+0

誰知道如何配置從jenkins中的所有子模塊獲取新鮮的git源代碼?我們應該在那裏使用一些插件或工作嗎? – OJ287

相關問題