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 qui laisse encore 5 versions. Est-ce que c’est l’intention? Existe-t-il un autre moyen de nettoyer les anciennes versions pour un seul déploiement précédent?
Vous pouvez utiliser la variable :keep_releases
pour remplacer la valeur par défaut de 5. Vérifiez ceci .
Vous pouvez le faire automatiquement en le paramétrant dans votre deploy.rb
set :keep_releases, 1 after "deploy:update", "deploy:cleanup"
Dans le passé (je ne sais pas exactement quelle version), ce rappel était la valeur par défaut, mais plus tard, le développeur a décidé de laisser le choix à l’utilisateur. Dans capistrano 3, il a été ajouté au stream de déploiement par défaut.
Si vous souhaitez supprimer toutes les versions sauf les 3 dernières, vous pouvez par exemple exécuter:
cap deploy:cleanup -s keep_releases=3
J’avais un problème similaire. Je voulais conserver les 5 versions pour les déploiements normaux, mais pour que certaines situations puissent supprimer toutes les versions précédentes.
J’ai pu le faire avec une tâche personnalisée. Créez 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 exécuter, utilisez le bundle exec cap staging cleanup_all
ou cap staging cleanup_all