Шаблон Android CI/CD для публикации через Fastlane
16 ноября 2022 г.Перестаньте публиковать приложения для Android вручную и начните делать это полностью автоматически на любом этапе.
Мобильная разработка, как и любая другая разработка программного обеспечения, требует написания кода, который должен пройти все возможные тесты. Чтобы исключить вероятность ошибок, которые, скорее всего, вызваны человеческим фактором, мы сделали мобильный конвейер CI/CD для автоматизации процессов проверки и доставки приложения в тестовую и производственную среду.
В этой статье рассматривается шаблон для создания конвейера CI/CD для Android с помощью Fastlane и GitHub Actions.< /p>
Зачем нам нужен конвейер CI/CD?
Прежде всего, CI/CD позволяет повысить производительность за счет автоматизации.
С помощью CI/CD вы можете автоматизировать различные задачи при создании приложения, создавать артефакты (.apk, .aab) и развертывать их в рабочей среде. Это избавляет от рутинной работы и упрощает жизнь разработчика.
Что такое полоса обгона?
Fastlane – это платформа с открытым исходным кодом, предназначенная для упрощения развертывания Android и iOS. Fastlane позволяет автоматизировать каждый аспект рабочего процесса разработки и выпуска. Это позволяет настраивать типы и варианты сборки вашего приложения.
Помимо создания приложений, Fastlane выполняет различные утомительные задачи, такие как подпись кода, создание снимков экрана, выпуск приложений и многое другое.
Его встроенная система плагинов позволяет легко расширять его возможности. Различные инструменты/плагины позволяют создавать приложения, которые можно публиковать в Google Play Store, Firebase App Distribution или Apple TestFlight.
Теперь пришло время рассмотреть наш шаблон поближе. Зачем вам это нужно?
Как работает наш шаблон?
Схема компонентов:
И есть следующие преимущества:
- Быстрый старт CI/CD. С помощью этого шаблона вы можете легко создать CI/CD для своего приложения Android на основе Fastlane.
- Простая адаптация к внешним инструментам CI/CD. Мы используем действия GitLab-ci или GitHub в качестве исполнителя команд Fastlane и построения рабочего процесса.
- Уведомление. Оно отправляет Slack уведомления об успешных операциях или ошибках в процессе конвейера.
- Специальная настройка машины для сборки не требуется. Мы собираем приложение внутри контейнера Docker со всеми установленными зависимостями; это обеспечивает переносимость и возможность использовать стандартные агенты GitHub или средства выполнения GitLab.
Чтобы понять дальнейшие шаги более подробно, вы можете сначала просмотреть наш видеообзор:
https://www.youtube.com/watch?v=poSugKUtBPU?embedable=true а>
Приступим к руководству по Android CI/CD!
Предпосылки
Прежде всего вам необходимо:
- Создайте аккаунт на облачной платформе Google;
- Создайте проект Google Cloud;
- Создайте проект Firebase и активируйте распространение приложения;
- Создайте аккаунт разработчика Google Play.
Только после этого мы можем перейти к ключам для сборки и выпуска Android-приложений.
Подготовить ключи для сборки и выпуска приложения
- Json-файл с конфигурацией для Firebase
- Подготовьте файл Json с настройками проекта Firebase, закодированными в base64 n https://firebase.google.com/docs /android/setup – Шаг 3 –
base64 google-services.json > firebase_setting
- Сервисный аккаунт с доступом к Firebase
- Создайте служебный аккаунт для выпуска приложения в Firebase n Выберите свой аккаунт Firebase --> Обзор проекта --> Настройка проекта --> Сервисный аккаунт --> создать сервисный аккаунт
- Подготовьте ключ сервисной учетной записи, закодированный в base64. n
base64 sa.json > key_firebase
- Сервисный аккаунт с доступом к Google Play
- Создайте сервисный аккаунт для выпуска приложений в Google Play ли>
- Подготовьте ключ сервисного аккаунта, закодированный в base64. n
base64 google_play.json > гугл_плей
- Хранилище ключей для подписи приложения
- Чтобы подписать приложение, вам нужен ключ, который можно сгенерировать с помощью команды. n
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
- Подготовьте хранилище ключей для подписи, закодированное в base64. n base64 my-release-key.keystore > хранилище ключей
- Обратите внимание на параметры, которые вы указываете при создании ключа. Эти параметры нужно будет добавить к переменным среды.
Подготовим CI/CD к запуску
Если вам нужно подготовить CI/CD в GitLab, см. README сильный>.
Действия GitHub
- Мы можем использовать среды в GitHub Actions, но среды доступны только в общедоступных репозиториях или по корпоративным подпискам.
- В этом шаблоне мы не используем среды в GitHub Actions.
Подготовка переменных среды
GitHub --> Настройки --> Секреты --> Действия --> Новый секрет репозитория
GOOGLE_SERVICES_JSON
- В поле значения вставьте файл google-services.json, закодированный в base64.
SA_JSON_KEY
- В поле значения вставьте ключ sa.key, закодированный в base64.
SA_JSON_GP_KEY
- В поле значения вставьте файл google_play.json, закодированный в base64.
ХРАНИЛИЩЕ КЛЮЧЕЙ
- В поле значения вставьте хранилище my-release-key.keystore, закодированное в base64.
Псевдоним
- Псевдоним
ALIAS_PW
- Псевдоним пароля
KEYSTORE_PW
- Пароль хранилища ключей
УТВЕРЖДАЮЩИЕ
- Список утверждающих для версии Google Play.
APP_PACKAGE_NAME
- Имя пакета Android по умолчанию, например, мы используем com.boiler.android.hello
APP_PACKAGE_NAME_STAGING
- Имя пакета для промежуточной среды, например, мы используем com.boiler.android.hello.staging
APP_VERSION_NAME
- Версия приложения
FIREBASE_APP_ID_PROD
- Идентификатор приложения для рабочей версии Firebase
FIREBASE_APP_ID_STG
- Идентификатор приложения для подготовки Firebase
SLACK_WEBHOOK_URL
- Неактивный URL-адрес веб-перехватчика
Дополнительную информацию о переменных среды можно найти на Github.
Когда вы завершите всю эту подготовку, вы можете начать сборку и выпуск приложения в Firebase. Вот и все!
Мы надеемся, что этот шаблон будет вам полезен, и вы найдете его среди лучших практик мобильного конвейера CI/CD для Android.
Мы с нетерпением ждем ваших отзывов о нашем шаблоне. п
Оригинал