Видео с первой конференции Badoo для тестировщиков LoveQA. "AIDA. Эволюция автоматизации работы с Git, JIRA и TeamCity". Доклад Александа Ильина & Олега Оямяэ, Badoo.
Материалы для чтения: http://bit.ly/badoo-developer-handbook
4. DEPLOY DASHBOARD
Список активных релизов и история релизов
Перечень задач в релизах и их статусы
Интерфейсы для применения patch и hotfix
Создание нового .shot и список существующих
Интерфейс раскладки конфигов и crontab
5. GITOSIS — GITPHP
50+ репозиториев
Code Review
200+ пользователей
JIRA
Web интерфейс
Заменил Gerrit
Open Source
Интегрирован Mergely
“The only valid measurement
of code quality: WTF/minute.”
https://github.com/tv42/gitosis
http://bit.ly/badoo-gitphp-habr
7. GIT WORKFLOW
JAVA — OBJECTIVE-C
release_fix_1
release_1.0
master
integration_fix_1
integration_1
dev
IOS-1_new_feature
IOS-2_new_feature
Developers Commits
Actions by Leads / Release Team
Automated Actions
8. ПЯТЬ ПРАВИЛ РЕЛИЗЕРА
Все ветки начинаются с master
Новая ветка для каждого релиза
Откат задач через rebase
Ветка релиза не мерджится в ветку задачи
Не пушить с force
“У нас будет свой флоу,
с rebase и feature ветками.”
http://bit.ly/badoo-git-rebase-habr
http://bit.ly/badoo-workflow-1-habr
http://bit.ly/badoo-workflow-2-habr
9. AUTOMERGE
Выборка готовых к выкладке задач из JIRA
Проверка существования ветки задачи в origin
Проверка готовности связанных задач
Обработка конфликтов при merge
Уведомление о конфликте в jabber
10. GIT — HOOKS
16 разных событий
Локальные и удаленные события
Возможность остановки
Возможность изменения
git push origin HEAD
prepare-commit-msg
pre-receive
post-receive
11. GIT — LOCAL HOOKS
prepare-commit-msg
Подготовка данных для последующих этапов тестирования
Простой способ определения текущего набора задач в ветке
Определение набора задач после git rebase
Поддержка в стороннем ПО — TeamCity, JIRA, PHPStorm
12. GIT — REMOTE HOOKS
pre-receive
post-receive
Проверка прав
Уведомления
Анализ кода
Обновление служ. инф.
Проверка формата ветки
Отложенное выполнение
Внешние зависимости
http://bit.ly/badoo-git-habr
13. AIDA — SERVER SIDE
Очередь собщений
Несколько попыток
Многопоточность
Jabber клиент
Обертка над git
TeamCity клиент
JIRA клиент
Система уведомлений
Доступ на staging
Доступ на production
Синхронный и асинхронный режим