Je rencontre des problèmes de portée variable avec le module multi-étages de la gemme capistrano-ext. J'ai actuellement, dans config/deploy/staging.rb
.Configuration Capistrano
set(:settings) { YAML.load_file("config/deploy.yml")['staging'] }
set :repository, settings["repository"]
set :deploy_to, settings["deploy_to"]
set :branch, settings["branch"]
set :domain, settings["domain"]
set :user, settings["user"]
role :app, domain
role :web, domain
role :db, domain, :primary => true
Mon fichier config/deploy/production.rb
est similaire. Cela ne semble pas très sec. Idéalement, je pense que j'aimerais que tout soit dans le fichier deploy.rb. S'il y avait une variable avec l'étape actuelle, tout serait vraiment propre.
MISE À JOUR: J'ai trouvé une solution.
Je définis cette fonction dans deploy.rb
:
def set_settings(params)
params.each_pair do |k,v|
set k.to_sym, v
end
if exists? :domain
role :app, domain
role :web, domain
role :db, domain, :primary => true
end
end
Ensuite, mon fichier staging.rb
est juste set_settings(YAML.load_file("config/deploy.yml")['staging'])
Il est impossible de taper simplement '$ cap staging deploy' et de faire fonctionner les choses? – Eli