Ответ вслух Middle CI/CD, фича-флаги и релизы спрашивают часто обновлено

CI/CD мобильного приложения

Вопрос

Расскажите, как вы строите CI/CD для мобильного приложения.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

На каждый PR запускаю быстрый пайплайн: сборка затронутых модулей, линтеры, юнит-тесты, snapshot-тесты дизайн-системы и проверка размера сборки. Цель до 10-15 минут, иначе разработчики перестанут ждать.

Что должно прозвучать в ответе

  • PR-пайплайн: сборка, линтеры, юнит-тесты, проверка размера

  • Релизный пайплайн: версия, подпись, загрузка символов, публикация в тестовые треки

  • Секреты и ключи подписи вне репозитория

  • Ускорение: кеш сборки, разделение по модулям, параллельные задачи

  • Раскатка: поэтапно, метрики, флаги, хотфиксы

  • Ночные сборки: UI-тесты, полный регресс

Что могут спросить следом

  • Как ускорить сборку iOS на CI?
  • Что делать с нестабильными UI-тестами?

Разбор

На каждый PR запускаю быстрый пайплайн: сборка затронутых модулей, линтеры, юнит-тесты, snapshot-тесты дизайн-системы и проверка размера сборки. Цель до 10-15 минут, иначе разработчики перестанут ждать. Ночью полный прогон с UI-тестами на нескольких устройствах. Релизный пайплайн запускается по тегу: поднимает версию, подписывает ключами из секретов CI, загружает dSYM и маппинг R8 в крэш-аналитику и отправляет сборку в TestFlight и внутренний трек Play через fastlane. Для скорости кеширую зависимости и результаты сборки, делю тесты по модулям. После ревью раскатываю поэтапно, смотрю crash-free и ANR, а проблемные фичи выключаю флагами.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.