2012-02-21 45 views
1

我們的項目託管在github上,我們已經建立了一個Jenkins服務器,問題是我們在項目中有很多模塊,並且每個模塊都有它自己的工作,使用perforce它可以更新指定模塊中的源代碼,因此只有作業屬於那些已被修改的模塊纔會被觸發,但git會將整個項目視爲單個存儲庫,並且它不會告訴我們哪些模塊已被因此Jenkinks不能做同樣的事情。如何通過github存儲庫觸發jenkins中的單個作業

我調查了git子模塊和git子樹,似乎他們都有點複雜,有沒有更簡單的方法來存檔這個?

回答

1

Git會告訴你這個信息與git log(參見--exit-code參數,暗示--quiet)。我不知道Jenkins Git插件是否會給你這種技巧,但你可以輕鬆地用一個簡單的shell腳本來完成。

要檢查目錄dir修訂AB之間變化,

if git log --quiet A..B -- dir ; then 
    # there are no changes in "dir" between rev A and B 
else 
    # there are changes 
fi 
1

現在,您可以使用Jenkins的常規Git插件:您可以設置應該監視哪些目錄並開始執行作業,以及忽略哪個目錄。 如果您在存儲庫中的每個項目/模塊都有構建作業,並且您只想在相關目錄已更改時調用構建(例如,模塊的目錄以及任何公共/共享模塊目錄)。

爲了把這個觀點帶回家,我們沒有共享模塊的構建作業,但是我們確實有每個模塊的作業。因此,我們將插件設置爲僅查看模塊的目錄和公用目錄:通過這種方式,項目將在目錄的每個相關提交中重建,並提交到公用目錄。

相關問題