Здравствуйте.
Ищу технологии, которые бы смогли облегчить "разворачивание" и обновления основы для проекта.
Есть образцовая сборка CMS-ки и набор модулей, которые разработчики хотят устанавливать опционально. Например CMS + функционал расширенных форм + какой-нибудь модуль для работы с консолью.
Казалось бы, на помощь спешит composer, но в нашем случае "установка" модуля должна вестись в самые разные папки CMS. Насколько я знаю, у композера действует жёсткое правило: один пакет - одна папка. В моём же случае один пакет надо раскидывать по куче папок.
Может быть, вы сможете подсказать адекватное решение? Неохота писать велосипед.
Можете еще попробовать phing, это билд система, а не менеджер зависимостей
но и он не подойдет под ваш запрос на 100%
Скажу даже больше - решения которое подошло бы вам в принципе не существует и в других языках, поэтому мой совет - выбирайте максимально легкий для расширения инструмент и допиливайте под свои нужды
Я бы посоветовал использовать DEB пакеты. Из коробки присутствует обновление, можно как угодно конфигурировать систему во время установки. Но риск пострадать от рукожопости тут огромен.
Я использую такой техпроцесс:
1)Коммит в стабильную ветку гита
2)CI автоматически забирает новый коммит и собирает деб пакет
3)CI устанавливает деб пакет в репозиторий пакетов
4)Тестовый убунту сервер выкачивает обновление и автоматически разворачивает
5)Тестирование
@alekciy ни разу не лагнула, тьфу тьфу) Но очень внимательно тестировал кейсы установки и обновления.
Автосборка производится самописным баш скриптом, который вобрал в себя 2 мануала из гугла по настройке веб-сервера и сборке деб пакетов. Есть плагин к jenkins, но им не пользовался.