Предоставляет ли Capistrano переменную, которая содержит число предыдущих развертываний?
Да, releases.length
Есть ли способ развернуть pimp: очистить, чтобы он использовал минимальное пороговое значение?
Да, это частная задача с пространством имен, которая будет запускать обычную задачу очистки ТОЛЬКО, если определенное числоВ папках релиза есть:
namespace :mystuff do
task :mycleanup, :except => { :no_release => true } do
thresh = fetch(:cleanup_threshold, 70).to_i
if releases.length > thresh
logger.info "Threshold of #{thresh} releases reached, runing deploy:cleanup."
deploy.cleanup
end
end
end
Чтобы запускать этот процесс автоматически после развертывания, поместите его в начало рецепта:
after "deploy", "mystuff:mycleanup"
Хорошая вещь в этом заключается в том, чтоДирективы before
и after
, установленные на deploy:cleanup
, выполняются как обычно.Например, нам требуется следующее:
before 'deploy:cleanup', 'mystuff:prepare_cleanup_permissions'
after 'deploy:cleanup', 'mystuff:restore_cleanup_permissions'