Как автоматизировать процесс выкладывания версий nodeJS приложения?

Смотрел я разные вопросы и гуглил, но все же обращаюсь к вам, опишу ситуацию. Есть приложение (веб-сайт) написанное на node, и с использованием модуля cluster для запуска на проде (может быть это как-то влияет на работу таких штук как pm или forever, пока незнаю). Все тестили на девелоперских машинах с виндами, cluster хорошо работает в паре с nginx. В общем все у нас вроде ОК, теперь пришло время выложить это творение на продовский сервер (там у нас хостятся сайтики на php с apache+nginx, пока node туда не ставили даже).
Проект хранится на сервере с gitalb, там и ведется разработка.
Вариант 1: Нужно чтобы поле пуша в ветку master, срабатывал хук, который дернет "что-то" (можно написать sh скрипт который распакует ветку в нужную папку, но на сколько это правильно я не знаю), что обновит файлы в директории проекта, и тут же перезапустит рабочий сервер (например заставит forever перезапустить наше приложение).
Очевидно что этот вариант плох, особенно если это приложение работает на нескольких разных машинах. И тогда вариант 2:
Никаких хуков, нужно "что-то" с веб-интерфейсом, и простым конфигом (типа указал адрес к репо, данные для авторизации, нужную ветку). Жмем какую-нить кнопку "Deploy" и файлы проекта обновляются, приложение перезапускается, профит.

Что посоветуете делать? А лучше тыкните на наглядные примеры, с подробностями.
  • Вопрос задан
  • 662 просмотра
Пригласить эксперта
Ответы на вопрос 2
@alcyone
UNIX-админ
CI-тулзы вам в помощь. Собирайте приложение в .deb/.rpm через Jenkins и fpm, по scp копируйте на сервер и там ставьте. preinstall/postinstall скрипты пакетами поддерживаются.
Ответ написан
Комментировать
saintbyte
@saintbyte
Django developer
Почему capistrano никто не предлагает допилить?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы