Capistrano 多部署阶段

Capistrano Multiple Deploy Stages

我有一个 Rails 应用程序,我想使用 Capistrano 部署两个版本:productionstaging

在我的 deploy.rb 文件中我有: set :stages, ['staging', 'production']

那我怎样才能使用两条路径而不覆盖它们呢?

set :deploy_to, '/home/deploy/Sites/staging/myname'

set :deploy_to, '/home/deploy/Sites/production/myname'

我看过 this answer 但我想保持命令行干净。

config/deploy/*.rbproduction.rbstaging.rb 下创建两个文件,向 production.rb 添加 set :deploy_to, '/home/deploy/Sites/production/myname',向 staging.rb 添加 set :deploy_to, '/home/deploy/Sites/staging/myname'

Don't be lazy and read the Capistrano documentation

可以为 config/deploy/*

中的特定环境定义来自 config/deploy.rb 的任何数据

config/deploy/production.rb

的例子
set :stage, :production
set :rails_env, :production
set :branch, "master"

config/deploy/staging.rb

的例子
set :stage, :staging
set :rails_env, :staging
set :branch, "staging"

这对我来说适用于来自不同分支的两个环境。 我希望你也明确定义 :deploy_toserver url