3. Долгий процесс интеграции
Актуальность базы данных
Стандарты кодирования
Copy/Pasting
Сложность кода
Новый человек в проекте
4. Уменьшение количества повторяемых
процессов
Снижение рисков
Возможность быстрого построения ПО
Обеспечение лучшего контроля проекта
Повышение доверия к ПО
5. Компиляция исходного кода
Проверка
Инспекция
Интеграция базы данных
Развертывание
Документирование
Обратная связь
6. Очистка окружения
Загружаем код из репозитория
Запуск тестов, анализ кода
Генерация документации (API)
Подключение библиотек и фреймворка
Развертывание приложения и базы данных
7.
8.
9.
10.
11.
12.
13.
14. Уменьшение количества повторяемых
процессов
Снижение рисков
Возможность быстрого построения ПО
Обеспечение лучшего контроля проекта
Повышение доверия к ПО
15. Долгий процесс интеграции
Актуальность базы данных
Стандарты кодирования
Copy/Pasting
Сложность кода
Новый человек в проекте
16. Передавайте код часто
Ликвидируйте проблемы
незамедлительно
Пишите автоматизированные проверки
Все проверки должны быть пройдены
Выполняйте закрытое построение
17.
18. Затраты на поддержку CI
Изменения процессов
Слишком много неудачных построений
Издержки на ПО и «железо»
«Непрерывная интеграция это практика разработки ПО, в которой участники команды интегрируют свою работу часто, как минимум ежедневно. Каждая интеграция проверяется автоматической сборкой (включающей тесты) для обнаружения ошибок, как можно быстрее.»Мартин Фаулер
Повторяемые процессы:деплоймент, сборка/сжатие/конвертация файлов, поменять права, их последовательность…Мы люди, нам скучно, мы можем забывать, мы можем ошибаться…- «Ой, я забыл закомитить файл»- «Я забыл протестировать, запустить тесты»- «На моей машине это работает»- Реализация одной фичи убила другую фичуНе найденные во время дефекты, контроль состояния проекта, качество
Загружает код из репозиторияЗапускает buildСоставляет репортыОтправляет обратную связь
Проверка == Автоматические тесты«Качество – это когда все сделано правильно, даже если никто не проверяет»Генри Форд
Инспекция != ПроверкаИнспекция:Анализ кода на основании предопределенных правилПроверка: Динамическое исследование функциональных возможностейСнижаем сложность кодаПоддерживаем стандартыкодаСледим за дублированным кодомОцениваем покрытие кода тестами
Управляет изменениями в БДSQL Delta скрипты
В любое время, в любом местеМаркируем каждое построениеЗапускаем все проверкиОбеспечиваем возможность отката
Дописываем target «deploy»для удаленных серверовСоздаем Job для разворачивания на dev-сервереСоздаем ночной JobСоздаем Job для разворачивания на staging/live server
Состояние построенияРезультаты проверкиОтчеты об инспекцииПравильный способПравильное времяПравильные люди