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 ?
Réponses
Trop de publicités?Vous pouvez utiliser le :keep_releases
pour remplacer la valeur par défaut de 5. Vérifiez este dehors.
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.
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