Бойлерплейт Fastlane для быстрого обновления Android-приложений
Как сделать свой бойлерплейт для непрерывной интеграции в Android: используем инструмент для автоматизации Fastlane.
2К открытий2К показов
Мобильная разработка, как и любая другая разработка программного обеспечения, требует написания кода, который должен пройти через все возможные тесты. Чтобы исключить вероятность ошибок, которые, скорее всего, будут вызваны человеческим фактором, мы в Mad Devs сделали мобильный CI/CD пайплайн для автоматизации процессов проверки и доставки приложения в тестовую и производственную среду.
В частности, в этой статье вы найдете бойлер для построения CI/CD пайплайна для Android-приложений с помощью Fastlane и GitHub Actions.
Больше не нужно публиковать свои Android-приложения вручную. Это можно делать полностью автоматически на любом этапе.
Для чего нужен CI/CD пайплайн?
Прежде всего, CI/CD пайплайн позволяет повысить производительность за счет автоматизации.
С помощью CI/CD можно автоматизировать различные задачи по созданию приложения, создать артефакты (.apk, .aab) и развернуть их в производство. Что очень облегчает жизнь разработчикам, так как не надо делать это все вручную.
Что такое Fastlane?
Fastlane — это платформа с открытым исходным кодом, которая упрощает процесс сборки и выкладки мобильных Android и iOS приложений. Fastlane позволяет автоматизировать каждый аспект рабочего процесса разработки и выпуска приложений. Кроме того, она еще помогает настраивать типы сборки и варианты ваших приложений.
Помимо создания приложений, Fastlane выполняет различные утомительные задачи за вас, например, такие как генерирование скриншотов, запуск Unit/UI тестов и многое другое.
У платформы есть встроенная система плагинов позволяет легко расширить возможности. Различные инструменты/плагины позволяют создавать приложения, которые могут быть опубликованы в Google Play Store, Firebase App Distribution или Apple TestFlight.
Теперь пришло время рассмотреть наш бойлер. Зачем он нужен?
Как работает наш бойлер?
Схема компонентов:
И в этом есть следующие преимущества:
- Быстрый запуск CI/CD. С помощью этого бойлерплейта вы сможете легко создать CI/CD для вашего Android-приложения с помощью Fastlane.
- Простая адаптация к внешним инструментам CI/CD. Мы используем GitLab-ci или GitHub actions в качестве исполнителя команд Fastlane и построения процесса сборки и поставки.
- Уведомления. Вы можете настроить уведомления в Slack об успешных операциях или ошибках в процессе выполнения пайплайна.
- Нет необходимости в настройке специальной настройки машины для сборки. Мы собираем приложение внутри docker контейнера со всеми установленными зависимостями; это обеспечивает переносимость и возможность использования стандартных GitHub agents или GitLab runners.
Перед тем, как продолжить, мы рекомендуем сначала посмотреть наш видеообзор с подробным описанием:
А теперь давайте непосредственно перейдем к самому бойлеру.
Для начала:
Прежде всего, вам необходимо:
- Создать аккаунт в облачной платформе Google;
- Создать проект облака Google;
- Создайте проект Firebase и активируйте распространение приложений;
- Создайте аккаунт разработчика в Google Play.
Только после этого мы можем перейти к ключам для сборки и выпуска Android-приложений.
Подготовка ключей и переменных окружения
1. Json-файл с конфигурацией для Firebase
- Подготовьте json-файл с настройками проекта Firebase, закодированными в base64
- https://firebase.google.com/docs/android/setup — Шаг 3 base64 google-services.json > firebase_setting
2. Сервис аккаунт с доступом к Firebase
- Создайте сервис аккаунт для загрузки приложения на Firebase
- Choose your Firebase account —> Project Overview —> Project setting —> Service Account —> create service account
- Подготовьте ключ сервис аккаунта(SA), закодированный в base64 base64 sa.json > key_firebase
3. Сервис аккаунт с доступом к Google Play
- Создайте сервис аккаунт для загрузки приложения в Google Play
- Добавьте ключ сервис аккаунта(SA), закодированный в base64 base64 google_play.json > google_play
4. Хранилище ключей для подписи приложения
- Чтобы зарегистрировать приложение, необходим ключ, который можно сгенерировать с помощью команды.
- keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
- Добавьте хранилище ключей, закодированное в base64 base64 my-release-key.keystore > keystore
- Обратите внимание на параметры, которые вы указываете при создании ключа. Эти параметры нужно будет добавить в переменные окружения.
Подготовим CI/CD к запуску
Если вам нужно подготовить CI/CD в GitLab, обратитесь к README.
GitHub Actions
Конечно, мы можем использовать окружения в GitHub Actions, но окружения доступны только в публичных репозиториях или корпоративных подписках.
Поэтому в этом бойлере мы не используем окружения в GitHub Actions.
Подготовим переменные окружения
GitHub —> Settings —> Secrets —> Actions —> New repository secret
GOOGLE_SERVICES_JSON
- В поле value вставьте ваш google-services.json, закодированный в base64.
SA_JSON_KEY
- В поле value вставьте ваш sa.key, закодированный в base64.
SA_JSON_GP_KEY
- В поле value вставьте ваш google_play.json, закодированный в base64.
KEYSTORE
- В поле value вставьте ваш my-release-key.keystore в кодировке base64.
ALIAS
- Alias имя
ALIAS_PW
- Alias пароль
KEYSTORE_PW
- Пароль хранилища ключей
APPROVERS
- Список одобряющих для релиза Google Play, используется только в GitHub Actions.
APP_PACKAGE_NAME
- Имя пакета android по умолчанию, например, мы используем com.boiler.android.hello.
APP_PACKAGE_NAME_STAGING
- Имя пакета для среды стейджинга, например, мы используем com.boiler.android.hello.staging
APP_VERSION_NAME
- Версия приложения
FIREBASE_APP_ID_PROD
- Идентификатор приложения для production в Firebase
FIREBASE_APP_ID_STG
- Идентификатор приложения для staging в Firebase
SLACK_WEBHOOK_URL
- Slack вебхук
Более подробную информацию о переменных окружения вы можете найти на Github.
Когда вы завершите всю эту подготовку, можно приступать к сборке и выпуску приложения на Firebase. Вот и все!
Заключение
Мы надеемся, что этот бойлер будет вам полезен, и он войдет в число тех инструментов, которыми вы будете пользоваться регулярно для построения CI/CD пайплана для Android-приложений.
Будем рады вашим отзывам о нашем бойлерплейте.
2К открытий2К показов