Capistrano: ejecutar symlinks diferentes en staging y produccion

Hola!! tengo una aplicación en la que necesito que la tarea que crea los
symlinks (task :after_symlink) haga symlinks diferentes dependiendo de
si
está haciendo el deploy en staging o en producción, algo como esto ( me
invento la sintaxis)
after “production:deploy”, “production_symlinks”

after “staging:deploy”, “staging_symlinks”

alguna ayuda?
Gracias!

On Jun 25, 2008, at 10:23 AM, Emili Parreño wrote:

Hola!! tengo una aplicación en la que necesito que la tarea que crea
los symlinks (task :after_symlink) haga symlinks diferentes
dependiendo de si está haciendo el deploy en staging o en
producción, algo como esto ( me invento la sintaxis)

after “production:deploy”, “production_symlinks”

after “staging:deploy”, “staging_symlinks”

Yo lo que hago siempre es definir entornos en capistrano. De manera
que tengo staging y producción. La única diferencia entre ellos es los
servidores en los que se ejecuta.

 server = 'app.com'
 port = 5000
 servers = 8

 case environment
 when 'staging'
   role :web, application
   role :app, application
   role :db,  application, :primary => true
 else
   role :web, 'web1.app.com', 'web2.app.com'
   role :app, 'web1.app.com', 'web2.app.com'
   role :db, 'db1.app.com'
end

case environment
when 'staging'
  set :application, "staging.#{server}"
  environment = 'staging'
  port = port + 500
  servers = 4

else
set :application, “www.#{server}”
end

Así todas las tareas podras re-utilizarlas en cualquier entorno,
podras definirte los entornos que te hagan falta …

OK , ya veo. Con una variable controlas en que entorno estas.
Gracias

El día 25 de junio de 2008 10:35, Francesc E. <
[email protected]> escribió:

Emili Parreño escribió:

Gracias!

Yo suelo usar el componente multistage del plugin “capistrano-ext”[1]
Te quedan cosas muy majicas. Mas o menos para lo que tu quieres sería
algo así:

==== config/deploy.rb

set :stages, %w(production staging development foo bar)
set :default_stage, “development”

require ‘capistrano/ext/multistage’

Common variables and tasks

==== config/deploy/production.rb

after “deploy”, “custom_symlinks”

namespace :deploy do
task :custom_symlinks, :roles => :app do
# your code
end
end

More tasks for production stage

==== config/deploy/staging.rb

after “deploy”, “custom_symlinks”

namespace :deploy do
task :custom_symlinks, :roles => :app do
# your code
end
end

More tasks for staging stage

[1]Buckblog: Capistrano: Multistage

Rafael, ya lo habia visto, pero creo que para lo que necesito no es
necesario instalar un plugin, aunque tiene buena pinta.
Gracias

2008/6/25 Rafael G. [email protected]: