Вопрос

Есть ли способ вести журнал (локальный или хранящийся на удаленном сервере) каждый раз, когда развертывание выполняется через Capistrano? Было бы очень полезно вести учет того, какая ревизия выполнялась в любое время в прошлом.

Я знаю, что процесс развертывания оставляет за развернутыми файлами последние 10 развертываний в каталоге релизов, но было бы неплохо сохранить больше истории и сделать ее доступной в виде плоского файла.

Это было полезно?

Решение

capistrano устанавливает несколько полезных переменных, одна из которых называется latest_revision , которые вы можете выгружать в файл.

task :mark_revision do
  log = "#{deploy_to}/revisions.log"
  run "(test -e #{log} || touch #{log} && chmod 666 #{log}) && " +
  "echo #{latest_revision} >> #{log};"
end

Другие советы

Нет встроенной функциональности, поэтому другой ответ будет работать отлично; Я мог бы сказать, что вы должны как-то присоединить его к цепочке выполнения по умолчанию, я бы порекомендовал что-то вроде

after :deploy, :mark_revision

еще лучше imho будет что-то вроде:

after :deploy do
    log = "#{deploy_to}/revisions.log"
    run "(test -e #{log} || touch #{log} && chmod 666 #{log}) && " +
    "echo #{latest_revision} >> #{log};"
end

Я открыл его как билет для обсуждения трекера ошибок Capistrano, возможно, мы внедрим что-то в ядре, чтобы вести лучшие журналы; это, безусловно, отличный вопрос, который мы упустили из виду!

Peritor Labs «Webistrano» делает нечто похожее, сохраняя веб-интерфейс, управляемый базой данных, это позволяет вам регистрировать все, что вам нравится, и перемещать зависимость для развертывания с машин разработчика в более центральное место; часто люди используют Webistrano на своем CI-сервере или хосте репозитория, если они являются хостингом. Больше информации об их Trac: http://labs.peritor.com/webistrano

Ошибка находится здесь: https: // capistrano. lighthouseapp.com/projects/8716-capistrano/tickets/98-log-deployments

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top