Шаблон Android CI/CD для публикации через Fastlane

Шаблон 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.

Теперь пришло время рассмотреть наш шаблон поближе. Зачем вам это нужно?

Как работает наш шаблон?

Схема компонентов:

Boilerplate Components Scheme

И есть следующие преимущества:

  • Быстрый старт 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!

Предпосылки

Прежде всего вам необходимо:

  1. Создайте аккаунт на облачной платформе Google;
  2. Создайте проект Google Cloud;
  3. Создайте проект Firebase и активируйте распространение приложения;
  4. Создайте аккаунт разработчика Google Play.

Только после этого мы можем перейти к ключам для сборки и выпуска Android-приложений.

Подготовить ключи для сборки и выпуска приложения

  1. Json-файл с конфигурацией для Firebase
  2. Подготовьте файл Json с настройками проекта Firebase, закодированными в base64 n https://firebase.google.com/docs /android/setup – Шаг 3 – base64 google-services.json > firebase_setting
  3. Сервисный аккаунт с доступом к Firebase
  4. Создайте служебный аккаунт для выпуска приложения в Firebase n Выберите свой аккаунт Firebase --> Обзор проекта --> Настройка проекта --> Сервисный аккаунт --> создать сервисный аккаунт
  5. Подготовьте ключ сервисной учетной записи, закодированный в base64. n base64 sa.json > key_firebase
  6. Сервисный аккаунт с доступом к Google Play
  7. Создайте сервисный аккаунт для выпуска приложений в Google Play
  8. Подготовьте ключ сервисного аккаунта, закодированный в base64. n base64 google_play.json > гугл_плей
  9. Хранилище ключей для подписи приложения
  10. Чтобы подписать приложение, вам нужен ключ, который можно сгенерировать с помощью команды. n keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
  11. Подготовьте хранилище ключей для подписи, закодированное в base64. n base64 my-release-key.keystore > хранилище ключей
  12. Обратите внимание на параметры, которые вы указываете при создании ключа. Эти параметры нужно будет добавить к переменным среды.

Подготовим 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.

Мы с нетерпением ждем ваших отзывов о нашем шаблоне. п


Оригинал