Несколько этапов развертывания Capistrano

У меня есть приложение Rails, и я хотел бы использовать Capistrano для развертывания двух версий: production и staging.

В моем файле deploy.rb у меня есть: set :stages, ['staging', 'production']

Тогда как я могу использовать два пути, не переопределяя их?

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

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

Я видел этот ответ, но я хотел бы, чтобы командная строка оставалась чистой.


person a.barbieri    schedule 28.04.2016    source источник


Ответы (2)


Создайте два файла под config/deploy/*.rb, production.rb и staging.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

person Зелёный    schedule 28.04.2016

Любые данные из config/deploy.rb могут быть определены для конкретных сред в config/deploy/*

пример 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_to и server url.

person Felipe M Andrada    schedule 06.11.2018