Есть в наличии сервис, который активно разрабатывается. Стоит задача обновлять и держать в актуальном состоянии его на тестовом сервере(и впоследствии на продуктивном).
В целом задача не сложная, но есть несколько нюансов, которые надо в процессе решить:
- Из GIT не нужно тянуть весь проект, т.к. интересует только серверная часть сервиса, которая лежит в отдельной директории.
- Сервис состоит из файла настроек приложения, параметры которого в процессе разработки могу меняться, добавляться, удалятся (в том числе в зависимости от среды — dev или test) и самого кода сервиса.
- Сам код и настройки лежат в абсолютно разных директориях.
Я для себя придумал следующую схему:
Есть некая директория, где лежит git репозиторий, причем только интересующая меня директория с серверной частью. Рядом лежит скрипт, который осуществляет деплой приложения, а именно получает новую версию из GIT, подставляет нужные настройки в файл конфигурации в зависимсти от того это test или prod среда (база данных, количество workers, уровень логирования и т.д). Раскладывает файлы в нужные директории, перезапускает сервис, проверяет, что все запустилось. Далее подробности. Continue Reading