Я большую часть своего времени занимаюсь разработчиком, работая над несколькими крупными, в основном PHP-проектами. Я хочу профессионализировать и автоматизировать обработку изменений в базе кода и создать процесс непрерывной интеграции, который сделает возможным переход к работе в команде без необходимости внесения фундаментальных изменений.
То, что я делаю прямо сейчас, у меня есть локальная тестовая среда для каждого проекта; Я использую SVN для каждого проекта; изменения проверяются локально, а затем переносятся в онлайн-версию, как правило, через FTP. Документация API создается вручную из исходного кода; Единичные тесты - это то, что я получаю медленно, и это еще не часть моей повседневной жизни.
"Цикл сборки", который я предвижу, будет делать следующее:
-
Набор изменений будет проверен в SVN после локального тестирования.
-
Я начинаю процесс сборки. Редакция SVN HEAD проверяется, при необходимости изменяется и готова к загрузке.
-
Документация API создается автоматически - если я еще не установил ее подробно, используя шаблон по умолчанию, сканирование всей базы кода.
-
Новая версия развертывается в удаленном месте через FTP (включая некоторые переименования каталогов, chmodding, импорт баз данных и т.д.) Это то, что мне уже нравится phing, но я открыт для альтернатив, конечно.
-
Запускаются те тесты, которые находятся в предопределенном месте. Мне сообщили об их неудаче или успехе, используя E-Mail, RSS или (желательно) вывод HTML, который я могу захватить и разместить на веб-странице.
-
(необязательно) текстовый файл "изменённый" конечного пользователя в предварительно определенном месте обновляется с заранее определенной частью сообщения фиксации ( "Теперь можно фильтровать как" foo ", так и" bar" в то же время). Это сообщение не обязательно совпадает с сообщением о передаче SVN, которое, вероятно, содержит гораздо больше внутренней информации.
-
Такие вещи, как метрики кода, проверка стиля кода и т.д., не являются моим основным направлением прямо сейчас, но в долгосрочной перспективе они, безусловно, будут. Решения, которые приносят этот готовый продукт, очень любезно смотрятся.
Я ищу
-
Обратная связь и опыт от людей, которые находятся или находятся в аналогичной ситуации, и успешно внедрили решение для этого
-
В частности, хорошие пошаговые руководства и пошаговые руководства о том, как установить это.
-
Решения, обеспечивающие максимально возможную автоматизацию, например, путем создания API-интерфейса скелета, тестовых примеров и т.д. для каждого нового проекта.
а также
- Рекомендации по продукту. То, что я знаю до сих пор, phing/ant для построения, и phpUnderControl или Hudson для части отчета. Мне все они нравятся, насколько я могу судить, но у меня, конечно, нет подробного опыта с ними.
Я заботился о работе, поэтому у меня есть сильная склонность к простым решениям. С другой стороны, если функция отсутствует, я буду кричать, что она слишком ограничена. Решения "точка-и-клик" приветствуются. Я также рекомендую коммерческие продукты, которые могут работать с проектами PHP.
Моя настройка
Я работаю на Windows локально (7, если быть точным), и большинство клиентских проектов запускаются в стек LAMP, часто на общем хостинге (= без удаленного SSH). Я ищу решения, которые я могу запустить в своей собственной среде. Я готов настроить виртуальную машину Linux для этого, без проблем. Хостинговые решения интересны для меня, только если они обеспечивают все описанные аспекты или достаточно гибки, чтобы взаимодействовать с другими частями процесса.
BountyЯ принимаю ответ, который, как мне кажется, даст мне самый большой пробег. Здесь много отличного ввода, я бы хотел принять более одного ответа. Спасибо всем!