Непрерывная интеграция для PHP Александр Симанович
Руководитель группы разработчиков MTV Entertainment в EPAM Systems PHP Skill Manager в EPAM Systems
Проект (> 1 года) Команда (5-9 человек) Итеративный процесс (демо) LAMP Zend Framework
Долгий процесс интеграции Актуальность базы данных Стандарты кодирования Copy/Pasting Сложность кода Новый человек в проекте
Тестирование Рефакторинг Стандарты кодирования Частые релизы
Уменьшение количества повторяемых процессов Снижение рисков Возможность быстрого построения ПО Обеспечение лучшего контроля проекта Повышение доверия к ПО
Компиляция исходного кода Проверка Инспекция Интеграция базы данных Развертывание Документирование Обратная связь
Очистка окружения Загружаем код из репозитория Запуск тестов, анализ кода Генерация документации (API) Развертывание приложения Интеграция базы данных
Сделан для PHP, написан на PHP XML build файлы Кросс платформенный Большой выбор готовых тасков Расширяемый
ProjectTargetTask
Jenkins/Hudson CruiseControl/phpUnderControl Bamboo от Atlassian TeamCity от JetBrains Travis
Репозиторий плагинов (более 400) Сообщество контрибьюторов Open source Кроссплатформенность Web интерфейс Простота использования API
Ручное тестирование Unit tests Acceptance (End-to-End) tests Integration tests
Снижаем сложность кода Поддерживаем стандарты кода Следим за дублированным кодом Оцениваем покрытие кода тестами
php –l index.php
В любое время, в любом месте Маркируем каждое построение Запускаем все проверки Обеспечиваем возможность отката
Состояние построения Результаты проверки Отчеты об инспекции
SMS Jabber Skype Twitter Расширение для браузера Popup IDE X10 Телевизор Звук Шар рассеянного света
Когда случается проблема Каждый час Каждый день Каждую неделю Каждый релиз
Заказчик Руководитель проекта Интегратор Технический руководитель Бизнес-аналитик Разработчик Тестеровщик
On commit По коммиту Информация команде Выполняется быстро Nightly Раз в день, ночью Информация команде, тех. лиду, менеджеру Выполняется долго (инспекция)
Уменьшение количества повторяемых процессов Снижение рисков Возможность быстрого построения ПО Обеспечение лучшего контроля проекта Повышение доверия к ПО
Долгий процесс интеграции Актуальность базы данных Стандарты кодирования Copy/Pasting Сложность кода Новый человек в проекте
Передавайте код часто Ликвидируйте проблемы незамедлительно Пишите автоматизированные проверки Все проверки должны быть пройдены Выполняйте закрытое построение
Затраты на поддержку CI Изменения процессов Слишком много неудачных построений Издержки на ПО и «железо»
Инструменты не решат ваши проблемы Вам нужна культура!
Facebook делает паблиш кода каждый день… Автоматически
Непрерывная Интеграция – Поль М. Дюваль Integrating PHP Projects with Jenkins – Sebastian Bergmann Growing Object-Oriented Software, Guided by Tests – Steve Freeman, Net Price
Skype: aliaksandr.simanovich facebook.com/alex.simanovich Blog: simanovich.infosimanovich.info