2011-10-11 71 views
0

我們有一個包含多個應用程序共享代碼的gem。它託管在一個私人github回購。如何使'捆綁安裝'始終下載私人託管(在Github上)的gem?

我希望每個應用程序每次運行bundle install時都會自動獲取該寶石的最新版本,因此我的團隊的其他成員可以隨時更新,並且可以在Heroku上進行簡單部署和我們的Jenkins CI服務器。

據我瞭解,當運行bundle install時,如果某些版本的gem已經成功安裝,它將被用來代替任何新版本。

有沒有辦法強制捆綁器總是獲取最新版本的gem?

當我們部署或推送到master(觸發Jenkins運行)時,我們是否需要使bundle update成爲我們工作流程的常規部分?

回答

2

正如你所說,我相信更新命令似乎更適合你試圖實現,因爲你可以強制私人寶石更新而不影響不相關的寶石。

bundle update mygem 

the bundle-update man page

更新指定的寶石......無視 在Gemfile.lock的指定以前安裝的寶石。

在您的開發環境中,您可以創建一個bash或其他腳本,以便與標準bundle install一起運行。

至於Heroku的部署,一旦你已經更新和提交您的Gemfile.lock的改變你的混帳回購協議,Heroku的應該使用該版本,per their docs

Gemfile.lock的保證寶石部署的版本在Heroku上匹配你的開發機器本地安裝的版本。