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.

Как выпустить хотфикс ​

Флоу выпуска хотфикса полностью повторяет флоу выпуска обычного релиза, за единственным исключением: Для его инициации надо сделать коммит fix: * в master.

Авторы

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

История