2011-10-11 70 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上匹配你的开发机器本地安装的版本。