Автоматизация процесса извлечения git на сервере разработки / контроля качества при фиксации

#ruby #git #ruby-on-rails-3 #deployment #github

#ruby #git #ruby-on-rails-3 #развертывание #github

Вопрос:

Мое приложение rails размещено на github. Всякий раз, когда в ветке ‘dev’ происходит фиксация, я хотел бы выполнить git pull в окне dev, а также вызвать команду ‘/etc/init.d/ apache2 restart’. Это то, что я могу сделать с развертыванием Capistrano, или я могу написать какой-то пользовательский сценарий оболочки и каким-то образом подключить мое приложение rails для вызова этого сценария оболочки?

Комментарии:

1. Под «всякий раз, когда фиксация происходит в ветке ‘dev'» вы на самом деле имеете в виду «всякий раз, когда ветка ‘dev’ перемещается в»?

2. да, всякий раз, когда я нажимаю на ветку разработки.

Ответ №1:

Вам понадобится перехват после получения на сервере git, который вызывает извлечение git в окне разработки. Быстрый DAF для «развертывания git с последующим получением» обнаружил довольно много ресурсов, таких как http://ryanflorence.com/deploying-websites-with-a-tiny-git-hook

Лично я бы предпочел использовать для этого систему сборки, подобную Jenkins, поскольку это дает вам больше контроля и наглядности. Мы настроили систему непрерывного развертывания с использованием перехватов Jenkins и github после получения без особых хлопот. Еще одно преимущество заключается в том, что вы можете запускать тесты перед автоматическим развертыванием (если они пройдут) путем объединения заданий в цепочку.