#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 после получения без особых хлопот. Еще одно преимущество заключается в том, что вы можете запускать тесты перед автоматическим развертыванием (если они пройдут) путем объединения заданий в цепочку.