Capistrano - очистить старые релизы - PullRequest
124 голосов
/ 23 января 2010

Обычно при использовании capistrano я иду и вручную удаляю старые версии из развернутого приложения. Я понимаю, что вы можете запустить cap deploy:cleanup, но это все еще оставляет 5 выпусков. Это целевое назначение? Есть ли другой способ очистить старые выпуски до 1 предыдущего развертывания?

Ответы [ 4 ]

153 голосов
/ 23 января 2010

Вы можете использовать переменную :keep_releases, чтобы переопределить значение по умолчанию 5. Проверьте this out.

130 голосов
/ 05 марта 2012

Вы можете сделать это автоматически, установив это в своем deploy.rb

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

В прошлом (я не знаю точно, какая версия) этот обратный вызов был по умолчанию, но позже разработчик решил оставить это на усмотрение пользователя. В capistrano 3 он был добавлен обратно в поток развертывания по умолчанию.

41 голосов
/ 05 февраля 2013

Если вы хотите удалить все версии, кроме последних 3, например, вы можете запустить:

cap deploy:cleanup -s keep_releases=3
0 голосов
/ 23 мая 2017

У меня была похожая проблема. Я хотел сохранить 5 выпусков для обычного развертывания, но в некоторых ситуациях нужно было удалить все предыдущие выпуски.

Я смог сделать это с помощью пользовательского задания. Создайте файл lib/capistrano/tasks/cleanup.rake и добавьте следующий код.

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

Для запуска используйте bundle exec cap staging cleanup_all или cap staging cleanup_all

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...