16
ALEXANDER ILYIN AIDA REVOLUTION * OLEG OJAMÄE *EVOLUTION IN RELEASE ENGINEERING

Доклад Александа Ильина и Олега Оямяэ на конференции LoveQA. "AIDA. Эволюция автоматизации работы с Git, JIRA

Embed Size (px)

DESCRIPTION

Видео с первой конференции Badoo для тестировщиков LoveQA. "AIDA. Эволюция автоматизации работы с Git, JIRA и TeamCity". Доклад Александа Ильина & Олега Оямяэ, Badoo. Материалы для чтения: http://bit.ly/badoo-developer-handbook

Citation preview

Page 1: Доклад Александа Ильина и Олега Оямяэ на конференции LoveQA. "AIDA. Эволюция автоматизации работы с Git, JIRA

ALEXANDER ILYIN

AIDAREVOLUTION*

OLEG OJAMÄE

*EVOLUTION IN RELEASE ENGINEERING

Page 2: Доклад Александа Ильина и Олега Оямяэ на конференции LoveQA. "AIDA. Эволюция автоматизации работы с Git, JIRA

AUTOMATEDINTERACTIVEDEPLOYASSISTANT

http://bit.ly/badoo-aida-1-habr

Page 3: Доклад Александа Ильина и Олега Оямяэ на конференции LoveQA. "AIDA. Эволюция автоматизации работы с Git, JIRA

ЯЩИК ПАНДОРЫ АИДЫ

Page 4: Доклад Александа Ильина и Олега Оямяэ на конференции LoveQA. "AIDA. Эволюция автоматизации работы с Git, JIRA

DEPLOY DASHBOARD

Список активных релизов и история релизов

Перечень задач в релизах и их статусы

Интерфейсы для применения patch и hotfix

Создание нового .shot и список существующих

Интерфейс раскладки конфигов и crontab

Page 5: Доклад Александа Ильина и Олега Оямяэ на конференции LoveQA. "AIDA. Эволюция автоматизации работы с Git, JIRA

GITOSIS — GITPHP

50+ репозиториев

200+ пользователей

Web интерфейс

Open Source

https://github.com/tv42/gitosishttp://bit.ly/badoo-gitphp-habr

Code Review

JIRA

Заменил Gerrit

Интегрирован Mergely

“The only valid measurementof code quality: WTF/minute.”

Page 6: Доклад Александа Ильина и Олега Оямяэ на конференции LoveQA. "AIDA. Эволюция автоматизации работы с Git, JIRA

GIT WORKFLOW PHP — C/C++ — C#

patch

hotfix TEST-1

build_1

master

Developers ActionsDevelopers CommitsActions by Leads / Release TeamAutomated Actions

JS-1

PHP-2

HTML-3

build_2

Page 7: Доклад Александа Ильина и Олега Оямяэ на конференции LoveQA. "AIDA. Эволюция автоматизации работы с Git, JIRA

GIT WORKFLOW JAVA — OBJECTIVE-C

dev

master

release_fix_1

integration_fix_1

release_1.0

integration_1

IOS-1_new_feature IOS-2_new_feature

Developers CommitsActions by Leads / Release TeamAutomated Actions

Page 8: Доклад Александа Ильина и Олега Оямяэ на конференции LoveQA. "AIDA. Эволюция автоматизации работы с Git, JIRA

Все ветки начинаются с master

Новая ветка для каждого релиза

Откат задач через rebase

Ветка релиза не мерджится в ветку задачи

Не пушить с force

ПЯТЬ ПРАВИЛ РЕЛИЗЕРА

“У нас будет свой флоу, с rebase и feature ветками.”

http://bit.ly/badoo-git-rebase-habrhttp://bit.ly/badoo-workflow-1-habrhttp://bit.ly/badoo-workflow-2-habr

Page 9: Доклад Александа Ильина и Олега Оямяэ на конференции LoveQA. "AIDA. Эволюция автоматизации работы с Git, JIRA

AUTOMERGE

Выборка готовых к выкладке задач из JIRA

Проверка существования ветки задачи в origin

Проверка готовности связанных задач

Обработка конфликтов при merge

Уведомление о конфликте в jabber

Page 10: Доклад Александа Ильина и Олега Оямяэ на конференции LoveQA. "AIDA. Эволюция автоматизации работы с Git, JIRA

prepare-commit-msg pre-receivepost-receive

git push origin HEAD

GIT — HOOKS

16 разных событий

Локальные и удаленные события

Возможность остановки

Возможность изменения

Page 11: Доклад Александа Ильина и Олега Оямяэ на конференции LoveQA. "AIDA. Эволюция автоматизации работы с Git, JIRA

prepare-commit-msg

Подготовка данных для последующих этапов тестирования

Простой способ определения текущего набора задач в ветке

Определение набора задач после git rebase

Поддержка в стороннем ПО — TeamCity, JIRA, PHPStorm

GIT — LOCAL HOOKS

Page 12: Доклад Александа Ильина и Олега Оямяэ на конференции LoveQA. "AIDA. Эволюция автоматизации работы с Git, JIRA

post-receivepre-receive

GIT — REMOTE HOOKS

http://bit.ly/badoo-git-habr

Проверка прав

Анализ кода

Проверка формата ветки

Внешние зависимости

Уведомления

Обновление служ. инф.

Отложенное выполнение

Page 13: Доклад Александа Ильина и Олега Оямяэ на конференции LoveQA. "AIDA. Эволюция автоматизации работы с Git, JIRA

AIDA — SERVER SIDE

Очередь собщений

Несколько попыток

Многопоточность

Jabber клиент

Обертка над git

TeamCity клиент

JIRA клиент

Система уведомлений

Доступ на staging

Доступ на production

Синхронный и асинхронный режим

Page 14: Доклад Александа Ильина и Олега Оямяэ на конференции LoveQA. "AIDA. Эволюция автоматизации работы с Git, JIRA
Page 15: Доклад Александа Ильина и Олега Оямяэ на конференции LoveQA. "AIDA. Эволюция автоматизации работы с Git, JIRA

Автоматизация разработки

Экономия времени

Отсутствие рутины

Клиент-серверная архитетура

Простой откат

Автоматизация тестирования

Система развивается

http://bit.ly/badoo-code-coverage-habr

http://bit.ly/badoo-phpunit-habr

PROFIT

Page 16: Доклад Александа Ильина и Олега Оямяэ на конференции LoveQA. "AIDA. Эволюция автоматизации работы с Git, JIRA

ПОЧИТАТЬhttp://bit.ly/badoo-developer-handbook

@BadooDev #AIDAПОГОВОРИТЬ

16