Skip to content

🚀 Как мы релизим

intro meme

Введение

Релиз проходит через несколько ключевых этапов. Ниже описаны основные шаги и правила для успешного создания и публикации релиза.

Диаграмма

release flow git diagram

Создание release ветки

Для создания релиз-кандидата от develop ветки необходимо создать новую ветку вида release/vX.Y.Z и открыть Merge Request (МР) в master. Билды для этого МРа будут автоматически собираться с типом РК.

Не используй squash!

Сними галку со сквоша. Релизные ветки заливаются в master с сохранением истории изменений. Это обязательно для автоверсионирования релизов. Иначе могут возникнуть проблемы с версионированием.

Сборка РК собирается при создании релиз-тега на ветке.

Чтобы создать релиз-тег, нужно запустить Job в пайплайне мердж-реквеста - release.

В результате выполнения будет создан тег и запущен пайплайн сборки РК. Следи за этим процессом в Build -> Pipelines.

RC Changelog

Ченжлог генерируется на каждый релиз-тег. Найти его можно на странице Deploy -> Releases.

Обновление release notes

Чтобы обновить релиз-нотсы, нужно добавить коммит с обновленными текстами в develop (если релиза еще нет) или релизную ветку: chore: update release notes.

  • Android - android/fastlane/metadata/android/{language}/changelogs/default.txt
  • iOS - ios/fastlane/metadata/{language}/release_notes.txt

TIP

Актуальные релиз-нотсы можно найти в 📝 Release Notes - История релиз-нотсов или спросить у ПМа.

Регресс и баги

Баги, которые блокируют релиз, исправляются в релизной ветке:

INFO

Коммиты без номера задачи пушатся в релизную ветку release/vX.Y.Z по конвенции. Пример: fix: fix wrong logic in subscription page

Если баг не блокирует релиз, создается задача для его исправления позже.

Аппрув от QA на релиз

Не используй squash!

Сними галку со сквоша. Релизные ветки заливаются в master с сохранением истории изменений. Это обязательно для автоверсионирования релизов. Иначе могут возникнуть проблемы.

Когда регресс пройден и QA дал аппрув на релиз, мержишь релизный МР в master с сохранением истории (выключи squash). Билд на разливку соберется автоматически, и черновики появятся в App Store и Play Market Console.

Google Play

  1. Открой Выпуск -> Обзор выпусков.
  2. Найди черновик и открой его.
  3. В черновике уже обновлены релиз-нотсы и прикреплен билд. Можно отправлять на ревью:

google play console 1

  1. Не забыть поставить 100% распространение:

google play console 2

  1. Проверить, что стоит ручная раскатка(должно быть так:)

google play console 3

Проверку самого гугла можно не ждать, нажимаем отправить на проверку:

google play console 4

App Store

Перед тем, как отправить версию на проверку, необходимо в Firebase поменять флаг feature_show_illegal_stuff.

firebase 1

Выключаем иллегал стаф для билда на проверке, вписываем номер релизного билда. firebase 2

firebase 3

firebase 4

firebase 5

  1. В App Store Connect найди черновик новой версии в списке версий.
  2. В черновике уже обновлены релиз-нотсы.
  3. Укажи билд вручную и отправь на ревью:
  4. Слева в консоли появится черновик новой версии:

ios 1

  1. В нем надо пролистать вниз и вручную добавить нужный релиз:

ios 2

  1. Убедиться, что стоит ручная выкатка и процент аудитории для всех пользователей:

ios 3

ios 4

  1. Нажать "сохранить" и "добавить для проверки"

ios 5

ios 6

  1. Справа внизу появился черновик и уже там отправляем на проверку:

ios 7

ios 8

RuSTORE

Черновик загружается автоматически и улетает на проверку автоматически. Нужно только убедиться, что стоит ручная публикация и 100% аудитория: rustore 1

Huawei AppGallery

  1. Версия в AppGallery отправляется на проверку после того, как версия доступна пользователям в Google Play.
  2. В AppGallery Connect найди черновик новой версии в списке версий.
  3. Чтобы отправить на ревью нажать на "Отправить на проверку".

Готово

🚀

Как выпускать билды после успешной проверки(только по команде Тимлида)

В GooglePlay Console: google publish

Для IOS: ios publish 1

ios publish 2

ios publish 3

Слева увидим, что релиз раскатился:

ios publish 4

Не забыть вернуть флаг feature_show_illegal_stuff в исходное состояние(прописан билд 10000).

RuStore: rustore publish 1

rustore publish 2

Backmerge master -> develop

WARNING

master мержится в develop после пайплайна (когда создан коммит с бампом версии, ченжлогом и тегом).

После заливки релизной ветки в master, необходимо подлить master обратно в develop. Это можно сделать через CLI или Git UI, но если не уверен, лучше использовать МР master -> develop.

Список изменений

Список изменений автоматически создается и находится в ArtForIntrovert • mobileApp • Releases.

Авторы

The avatar of contributor named as melvspace melvspace
The avatar of contributor named as Vadim Melnikov Vadim Melnikov
The avatar of contributor named as Pavel Nochevnoy Pavel Nochevnoy
The avatar of contributor named as Arutyun Gevorkyan Arutyun Gevorkyan

История