site: https://firebase.google.com/docs/app-distribution
goal: автоматизація процесу тестування та деплою мобільних додатків у процесі розробки.
Дозволяє автоматизувати збірку та доставку додатків як у засоби дистрибуції для тестувальників і розробників (firebase app-distribution), так і прямо в магазини додатків. Також вирішує питання необхідності OS X обладнання для збірки білдів під IOS та питання доступу розробників до App Store та ключів підпису.
Приклад реалізації: https://olo.live
Приклади сценаріїв: Я як розробник створюю гілку для вирішення завдання. Я як розробник роблю коміт у свою гілку, пов'язану з завданням. CI здійснює збірку додатка під всі платформи та пушить в app-distribution, звідки білди одразу доступні мені та тестувальнику (час від коміту до встановлення білда на телефон до 10 хвилин). Тестувальник перевіряє додаток на різних платформах. Код зливається у майстер гілку. Збірка з майстер гілки публікується в сторінки як чернетка нового релізу. Я як розробник не взаємодію зі сторінками для публікації, ключі, які є у мене, підходять тільки до app-distribution і не мають відношення до сторінок.
Проблеми, які вирішуються:
- повторюваність білдів, білд CI є відтворюваним (на відміну від APK, скинутого розробником у чаті)
- збірка під всі платформи одразу — один білд на CI збирає і Android, і iOS (що зручно для Flutter, ReactNative та інших кросплатформних рішень)
- відсутність необхідності купувати і налаштовувати/підтримувати віддалений доступ до Mac обладнання для збірки під IOS. Збірки здійснюються в Docker на сервері, який значно швидший за Mac)
- незалежні збірки на гілках — під час роботи команди тестувальник може легко переключатися між білдами різних розробників (фактично переключатися між гілками)
- зберігання інформації для сторів у git — скріншоти, описи та інші налаштування зберігаються в git проекту, що позбавляє від проблеми пошуку хто що вручну в веб панелі натиснув
- розробники не мають доступу до сертифікатів або взагалі не мають доступу до сторів, що зменшує ризики безпеки
Фактично набір наших практик і рішень дозволяє прийти до такого ж підходу, як на вебі використовується, але вже для мобільних додатків.