Diferentes acciones para diferentes ambientes

Pregunta rápida de Capistrano 3

Estoy usando Capistrano para implementar un CMS en un entorno de ensayo y luego en producción.

Necesito cargar un file de configuration con información de la database con el CMS que vive fuera del repository git.

Hay dos files de configuration: staging-config y production-config.

¿Cómo puedo hacer que Capistrano cargue un file o ejecute una tarea basada en el objective?

task :upload_config do on roles(:all) do |host| within fetch(:shanetworking_path) do upload! 'staging-config.php', "#{fetch :shanetworking_path}/staging-config.php" end end end 

Siempre puedes usar if..elseif..end como sigue:

 if fetch(:stage) == :production ... elsif fetch(:stage) == :staging ... end 

O bien, si solo tiene puesta en escena y producción:

 task :upload_config do on roles(:all) do |host| within fetch(:shanetworking_path) do upload! "#{fetch(:stage).to_s}-config.php", "#{fetch :shanetworking_path}/#{fetch(:stage).to_s}-config.php" end end end