В настоящее время для сборки и развертывания нашего приложения мы используем сценарий ручной настройки и настройки и сценарий непрерывной интеграции. Я пытаюсь формализовать это с помощью сторонней системы, разработанной для этих целей.
Я изучал Phing раньше и понял, что это в основном как Ant. Но мой опыт работы с муравьями несколько ограничен, так что мне это мало помогает. (Большая часть работы с Java, которую я сделал, была просто развернута как файл jar).
Я уже изучал круиз-контроль и понимаю, что phpUnderControl - это плагин для CC. Но Phing говорит, что это также работает с CC. Так что я не совсем уверен, что это совпадение. Нужны ли мне и Phing, и phpUnderControl для работы с CruiseControl, или они взаимоисключающие?
Что мне нужно, так это то, что может:
- Проверить источник из SVN
- Установить базу данных из файла SQL
- Создайте несколько локальных файлов конфигурации из серии шаблонов и INI-файла
- Запустите все наши модульные тесты (в настоящее время ST, но их легко конвертировать в PHPUnit) и отправьте электронное письмо команде разработчиков, если какие-либо тесты прервутся (с трассировкой стека, конечно)
- Создайте документацию API для приложения и поместите ее куда-нибудь
- Запустить отчет о тестировании покрытия
Теперь у нас есть все это в той или иной форме. Но было бы неплохо, чтобы все это было автоматизировано и объединено в один процесс.