vassilevsky/board — pull request #32 by vassilevsky (2013-01-29 08:06:55+00:00)
Title: Continuous deployment

Проект деплоится на сервер с Travis CI после каждого успешного билда.
Также можно деплоить руками. Пароль пользователя **deployer** записан в файл **password** в его домашнем каталоге.

Задеплоить сразу на чистый сервер не получится. Предварительно нужно создать пользователя и БД в PostgeSQL, а также установить зависимости для RVM. Это нужно делать из-под рута. А у пользователя **deployer** нет рутовых прав. Я думаю, что подготовка сервера - не входит в задачу деплоя. Это отдельная задача, которую нужно делать при помощи Chef и т. п.

Проблема, которую я решил грязно: отправка почты. Так как "сервер" используется также в качестве рабочей станции разработчика, устанавливать на него настоящий SMTP-сервер или Sendmail нецелесообразно. Поэтому я просто запустил Mailcatcher. К сожалению, Mailcatcher не создаёт pid-файл (и автор отклонил пулл-реквест с добавлением этой функции, мотивировав отказ тем, что это админская задача, а не задача приложения), поэтому трудно определить, запущен он уже или нет. Я не стал решать эту проблему, а просто пытаюсь запустить его при каждом деплое. При этом, если он уже запущен, он ругается. Но новый инстанс не запускается, так что в итоге всё ОК.

Также я не стал решать задачу запуска на порту 80. Это требует system-wide установки RVM (или родного Ruby) - на девелоперской машине я не стал этого делать.

**Внимание!** В конфигах пока указана ветка **feature-17-deployment** - для целей тестирования. Получив добро на мерж этой ветки, я сделаю финальный коммит, изменяющий ветку в конфигах на **master** - так что автодеплоиться будет только **master**.