rails - Capistrano: limpiar viejos lanzamientos
capistrano rails (4)
Puede hacer esto automáticamente configurando esto en su deploy.rb
set :keep_releases, 1
after "deploy:update", "deploy:cleanup"
En el pasado (no sé exactamente qué versión), esta devolución de llamada era la predeterminada, pero más tarde el desarrollador decidió dejar que el usuario lo decidiera. En capistrano 3, se volvió a agregar al flujo de despliegue predeterminado.
Por lo general, cuando uso capistrano, iré y eliminaré manualmente versiones anteriores de una aplicación desplegada. Entiendo que puede ejecutar la cap deploy:cleanup
pero eso aún deja 5 lanzamientos. ¿Es este su propósito? ¿Hay alguna otra manera de limpiar las versiones anteriores a solo 1 despliegue anterior?
Puede usar la variable :keep_releases
para anular el valor predeterminado de 5. Verifique this .
Si desea eliminar todas las versiones, excepto las últimas 3, por ejemplo, puede ejecutar:
cap deploy:cleanup -s keep_releases=3
Tuve un problema similar. Quería mantener los 5 lanzamientos para implementaciones normales, pero es necesario para ciertas situaciones para poder eliminar todas las versiones anteriores.
Pude hacer esto con una tarea personalizada. Cree un archivo lib/capistrano/tasks/cleanup.rake
y agregue el siguiente código.
desc "Remove all but the last release"
task :cleanup_all do
set :keep_releases, 1
invoke "deploy:cleanup"
end
Para ejecutar el uso del bundle exec cap staging cleanup_all
o cap staging cleanup_all