nomina - capistrano rails
Establecer variable personalizada en capistrano 3 (2)
Estaba usando capistrano 2 con mi proyecto php, donde solía definir variables personalizadas como esta:
set :app_environment, "test"
Y luego accedí a él en mis tareas de implementación, por ejemplo:
run "echo ''#{app_environment}'' > #{releases_path}/#{release_name}/protected/config/mode.php"
Ahora en capistrano 3 defino esta variable en mis archivos de configuración específicos de la etapa. Pero no los tengo definidos en mis tareas:
undefined local variable or method `app_environment'' for #<SSHKit::Backend::Netssh:0x007f92323d6988> config/deploy.rb:28:in `block (3 levels) in <top (required)>''
Desafortunadamente, no hay mucha documentación sobre la versión más reciente de capistrano y no estoy muy familiarizado con el rubí, así que no veo la forma de hacerlo correctamente.
El código debe leer:
run "echo ''#{fetch(:app_environment)}'' > #{releases_path}/#{fetch(:release_name)}/protected/config/mode.php"
Aunque incluso eso es incorrecto ya que run()
no existe en Cap3, ahora es execute()
, así que:
execute "echo ''#{fetch(:app_environment)}'' > #{releases_path}/#{fetch(:release_name)}/protected/config/mode.php"
Tenga cuidado al construir su comando de esta manera, nada usará el mapa de comandos, ni respetará las construcciones within()
, as()
o with()
.
Esto ahora se logra a través de ''fetch'':
fetch(:app_environment)