我有一个用于部署到暂存服务器的 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/