capistrano - w10 - remover arquivos e limpar a unidade




Capistrano-limpar versões antigas (3)

Normalmente, quando uso o capistrano, irei e excluo manualmente as versões antigas de um aplicativo implantado. Eu entendo que você pode executar o cap deploy:cleanup mas que ainda deixa 5 lançamentos. É este o propósito pretendido? Existe outra maneira de limpar versões antigas para apenas uma implantação anterior?


Eu tive um problema parecido. Eu queria manter as 5 versões para implantações normais, mas necessárias para determinadas situações para poder remover todas as versões anteriores.

Consegui fazer isso com uma tarefa personalizada. Crie um arquivo lib/capistrano/tasks/cleanup.rake e adicione o seguinte código.

desc "Remove all but the last release"
task :cleanup_all do
    set :keep_releases, 1
    invoke "deploy:cleanup"
end

Para executar use o bundle exec cap staging cleanup_all ou cap staging cleanup_all


Se você quiser excluir todos os lançamentos, exceto os últimos 3, por exemplo, você pode executar:

cap deploy:cleanup -s keep_releases=3

Você poderia fazer isso automaticamente configurando isso no seu deploy.rb

set :keep_releases, 1
after "deploy:update", "deploy:cleanup" 

No passado (eu não sei exatamente qual versão) este callback era o padrão, mas depois o desenvolvedor decidiu deixar para o usuário decidir. No capistrano 3 foi adicionado de volta ao fluxo de implementação padrão.