使用git和本地版本

时间:2017-01-25 19:48:57

标签: ruby-on-rails deployment capistrano rails-engines

我正在尝试了解部署rails引擎的工作流程。我看了this answer。但我不完全了解Gemfile,bundler,Capistrano和rails之间的情况。

我有一种情况,我正在开发一个应用程序本地推送到git存储库并使用Capistrano进行部署。在我的应用程序Gemfile

#gem 'my_engine', git: "git@myrepo.com/myengine.git"
gem 'my_engine', path: '/local/path/to/MyEngine'

当我开发时,我经常注释掉git存储库并使用我的本地(我知道有些人可能会对此有疑问,但是另一次question}我想知道的是:

  • 发动机何时包含或安装?
  • 如果我正在使用本地引擎并决定部署应用程序,那么此时包含本地引擎?
    • 当地的当前分支/州是否会被使用?
  • 如果我决定切换到生产(和/或)的仓库,那么它包括在哪里?
  • Capistrano在部署期间是否运行捆绑安装?
    • Capistrano能够使用我的本地副本还是需要我使用git repo?

1 个答案:

答案 0 :(得分:0)

引擎和主机应用程序位于相同的存储库中,然后指定

gem 'my_engine', path: '/local/path/to/MyEngine'

会奏效。

如果您有不同的引擎和应用程序存储库,则需要将gem指定为

gem 'my_engine', git: 'git@github.com:my_engine.git',
                       branch: 'master', revision: 'cb1a8d2495168d411676f58bdfc9015fe728948c'

branchrevision是可选的,但如果您想将其指向特定的提交或分支,则建议使用它。

确保deploy(用于部署应用程序的服务器上的用户)用户可以访问引擎存储库。