Разве все CI системы не делегируют "грязную работу" другим?
Т.е. собрать C# проект MS Build`у, Java проект анту, и т.д.?
И вот с авто деплоем в php караул, человечный автодеплой я видел только в Zend Server, кстати он имеет из коробки отличную интеграцию с Atlassian Bamboo.
Но и в автодеплое у Zend Server проблем хватает, как выглядит автодеплой в Zend Server:
1) Обычный зип архив, в котором содержится весь код приложения + 2 xml файла с подробностями для деплоя + специальные скрипты, которые вызывает Zend Server на разных стадиях.
2) Этот зип архив можно скормить Zend Serverу 2 способами: через графическую админку и через API(что и использует Atlassian Bamboo).
3) В xml файле можно указать какие расширения php проверить и какие настройки php чекнуть, ну, например, можно проверить лимиты памяти, времени, etc.
4) В xml файле можно задать список необходимых опций, их будет необходимо задать через веб интерфейс админки(сгенерится форма с input полями) или передать по API.
5) Есть php файлы, называемые скриптами(ваш кеп), которые Zend Server будет вызывать, например:
- скрипт перед распаковкой zip архива
- скрипт после распаковки zip архива
- скрипт перед деактиваций сервера
- скрипт после активации сервера
6) Каждый скрипт получает значение опций, директорию деплоя и ещё ряд переменных, и может делать что хочет, ну обычно это создать схему данных, отредактировать конфиг, етс
7) Каждая версия деплоя распаковывается в папку:
/usr/local/zend/var/ apps/http/<project_name>/80/<version>
После успешного выполнения ваших скриптов(если успешно...) конфиги веб сервера переключаются на новую версию.
И вы можете 1 кнопкой откатиться на прошлую версию, будут вызываться другие ваши скрипты(ответственные за rollback), которые как бы должны сделать откат в БД и прочее(это на ваших плечах).
Вкратце так, выглядит очень по человечески это всё, но Zend этот компонент развивает крайне слабо, они 3 раза ПОЛНОСТЬЮ меняли структуру и дизайн админки, запилили свой аналог редиса, варниша, брокера очередей(или нечто подобное, они очереди и крон как-то непонятно скрестили), но не вижу изменений в этом компоненте уже давно.
А много мелочей в нём не хватает, например лог некуда из php скриптов писать, приходится в папку самого приложения, если баг в скрипте деплоя - то хрен его найдёшь, так как их же компонент Zend Monitor не доступен из скриптов деплоя, нет хистори апдейтов приложения и прочее, прочее, прочее...
Если кто-то знает аналоги, ПРОШУ ПОДСКАЖИТЕ!