129 votes

Capistrano - nettoyage des anciennes versions

Habituellement, lorsque j'utilise capistrano, je vais supprimer manuellement les anciennes versions d'une application déployée. Je comprends que vous pouvez exécuter cap deploy:cleanup mais ça laisse encore 5 sorties. Est-ce là le but recherché ? Existe-t-il un autre moyen de nettoyer les anciennes versions pour n'avoir qu'un seul déploiement précédent ?

155voto

jcrossley3 Points 6297

Vous pouvez utiliser le :keep_releases pour remplacer la valeur par défaut de 5. Vérifiez este dehors.

134voto

Diego Plentz Points 1493

Vous pouvez le faire automatiquement en définissant ceci dans votre deploy.rb

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

Dans le passé (je ne sais pas exactement quelle version) ce callback était le défaut, mais plus tard le développeur a décidé de laisser l'utilisateur décider. Dans capistrano 3, il a été réintroduit dans le flux de déploiement par défaut.

42voto

jesse cai Points 396

Si vous voulez supprimer toutes les versions sauf les 3 dernières par exemple, vous pouvez exécuter :

cap deploy:cleanup -s keep_releases=3

3voto

grappler Points 397

J'ai eu un problème similaire. Je voulais conserver les 5 versions pour les déploiements normaux mais j'avais besoin, dans certaines situations, de pouvoir supprimer toutes les versions précédentes.

J'ai pu le faire avec une tâche personnalisée. Créer un fichier lib/capistrano/tasks/cleanup.rake et ajoutez le code suivant.

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

Pour l'exécuter, utilisez bundle exec cap staging cleanup_all o cap staging cleanup_all

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X