ruby-on-rails - 通过 capistrano 将特定的 git 分支部署到临时服务器

标签 ruby-on-rails git capistrano

我有一个用于部署到暂存服务器的 master 分支。我有用于部署到生产服务器的 stable 分支。我使用的 capistrano 脚本就是这样设置的。

当前工作流程: 每当生产出现问题时,我都会从 stable 分支分支出来,修复、提交,将其与 stable merge ,然后部署到生产。

这让我没有机会在我的登台服务器中测试错误修复(发生在那个热修复分支中)。理想情况下,我想要的是:

需要的工作流程: 每当生产出现问题时,我都会从 stable 分支分支出来,修复问题,提交它,将它与 master merge ,在登台服务器中部署和测试修复,验证它是否有效,然后将该热修复分支 merge 到 stable 并将其部署到生产环境中。

如何使用 Capistrano 解决这个问题?请帮忙。

最佳答案

免责声明:如果我误解了您的问题,请原谅我,但我认为您已经回答了您自己的问题。

您的 Git 工作流程就是您的“Git 工作流程”。与 Capistrano 没有任何关系。 Capistrano 将获取您想要的任何内容,这取决于您希望如何 merge 和分支您的 repo 以将其部署到部署点。

根据您所说的,我假设您已经设置了上限阶段以部署正确的分支,但如果您没有设置,下面有一个示例。这将为每种类型的部署获取不同的分支。

部署.rb

  set :stages, %w(staging production)
  set :default_stage, "staging"

deploy/staging.rb #cap deploy

  set :branch, 'master'

deploy/production.rb #cap 生产部署

  set :branch, 'stable'

关于ruby-on-rails - 通过 capistrano 将特定的 git 分支部署到临时服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8025393/

相关文章:

git - .gitignore 异常(exception)是包含额外的文件

git - 使用 git clone --depth 1 克隆 repo 后如何获取远程分支

ruby-on-rails - Capistrano - 身份验证失败

ruby-on-rails - 创建删除事件记录的按钮时出错

ruby-on-rails - 为整个命名空间设置 authenticate_user

java - 如何将 Java EE 应用程序迁移到 Rails

git - 使用 Git/Github 部署

ruby-on-rails - 当前部署 Rails 应用程序的标准方法是什么?

ruby-on-rails - 将 CouchDB 作为 Rails 应用程序的一部分分发?

ruby-on-rails - Rails(set_no_cache 方法)无法在 Safari 和 Opera 中禁用浏览器缓存