Di solito quando si utilizza capistrano, andrò a eliminare manualmente le vecchie versioni da un'applicazione distribuita. Capisco che è possibile eseguire cap deploy:cleanup
ma che lascia ancora 5 versioni. È questo è lo scopo previsto? C'è un altro modo per ripulire le vecchie versioni solo in una precedente distribuzione?Capistrano - ripulire vecchi rilasci
risposta
È possibile utilizzare la variabile :keep_releases
per ignorare il valore predefinito di 5. Controllare this out.
Grande. Questo è esattamente quello che stavo cercando. Grazie. – Josh
Prego! Potresti aver appena accettato la risposta! :-) – jcrossley3
@Josh, sicuramente, accetta questa risposta se ha risolto il tuo problema. Entrambi ottenete punti di ripetizione in questo modo. –
Si potrebbe fare questo automaticamente impostando questo nella vostra deploy.rb
set :keep_releases, 1
after "deploy:update", "deploy:cleanup"
In passato (non so esattamente quale versione) questo callback è il default, ma in seguito lo sviluppatore ha deciso di lasciare per decidere all'utente. In capistrano 3 è stato aggiunto nuovamente al flusso di distribuzione predefinito.
Grazie, Diego. La tua risposta funziona correttamente in Capistrano v2.14.1. – scarver2
Grazie a @diego questo mi ha davvero aiutato! – gouravtiwari21
Sembra che [Capistrano 3 chiami 'deploy: cleanup' come parte del flusso di distribuzione] (https://github.com/capistrano/capistrano/blob/690afc0c5c3c43d2920b0bfdeb9323c286b12106/lib/capistrano/tasks/deploy.rake#L23). – Dennis
Se si desidera eliminare tutte le emissioni tranne l'ultimo 3 ad esempio è possibile eseguire:
cap deploy:cleanup -s keep_releases=3
Non funziona. 'optionParser :: InvalidOption: opzione non valida: s' – Snowman
Ho avuto un problema simile. Volevo mantenere le 5 versioni per le normali implementazioni, ma era necessario che alcune situazioni potessero rimuovere tutte le versioni precedenti.
Sono riuscito a farlo con un'attività personalizzata. Creare un file lib/capistrano/tasks/cleanup.rake
e aggiungere il seguente codice.
desc "Remove all but the last release"
task :cleanup_all do
set :keep_releases, 1
invoke "deploy:cleanup"
end
Per eseguire l'uso bundle exec cap staging cleanup_all
o cap staging cleanup_all
- 1. ripulire vecchi rami di git remoti
- 2. Come ripulire vecchie build fallite in TeamCity?
- 3. Come ripulire le filettature
- 4. Come ripulire gli eventi assegnati dal controller?
- 5. Una migliore strategia di gestione dei rilasci?
- 6. Sistema di gestione dei rilasci per Linux
- 7. Come posso "ripulire" un virtualenv?
- 8. Come ripulire Eclipse "esegui configurazioni"
- 9. rotaie Capistrano
- 10. Installare vecchi cocoapodi?
- 11. permessi file capistrano-env
- 12. riavvio sequenziale di capistrano
- 13. Capistrano per Rails 3.1
- 14. beni Capistrano uccidendo: precompilazione
- 15. Capistrano per Django
- 16. Variabili multistadio Capistrano
- 17. Capistrano Deployment Timeout
- 18. Ripulire una forcella e riavviarla da monte
- 19. Trucco FILATI ripulire AppCache prima di riprovare
- 20. Come ripulire correttamente un oggetto Python?
- 21. Ripulire dopo una fusione git conflittuale?
- 22. Il modo migliore per 'ripulire' testo HTML
- 23. PHP Injection Attack - come ripulire il casino?
- 24. JBoss AS 7: Come ripulire il tmp?
- 25. Non riesco a ripulire elementi DOM distaccati
- 26. Impossibile ottenere rilasci per un Repo con l'API Github
- 27. Rimuovere vecchi problemi in Xcode
- 28. Git: risparmio di vecchi rami
- 29. Firebase chat - rimozione vecchi messaggi
- 30. Vecchi problemi di "rapporto C++"?
è mai una buona idea per mantenere alcune versioni precedenti, quindi se lo scorso Deploy contiene un grosso errore si può rapidamente far ritirare con Capistrano (cap Deploy: rollback) al versione precedente fino a quando non la aggiusti. – damoiser