Вести журнал развертываний Capistrano - PullRequest
5 голосов
/ 04 августа 2009

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

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

Ответы [ 2 ]

8 голосов
/ 04 августа 2009

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
3 голосов
/ 04 августа 2009

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

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

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