#Emulator #CI #Docker
Continuous testing with new Android emulator tools
Google открывает доступ к своим скриптам для Docker Container-ов c Android эмулятором, чтобы помочь разработчикам упростить тестирование последних изменений.
Помимо этого Google предоставила следующее:
👉 Скрипт для загрузки эмуляторов (AOSP и Google Play Services)
👉 Генератор Docker образов с Android эмулятором
👉 Поддержка работы по ADB с эмулятором в контейнере
👉 Remote streaming: возможность подключения к эмулятору из контейнера через браузер и видеть что происходит, а также взаимодействовать с ним
Пока образ работает только на Linux, но работы по поддержке macOS и Windows ведутся.
Continuous testing with new Android emulator tools
Google открывает доступ к своим скриптам для Docker Container-ов c Android эмулятором, чтобы помочь разработчикам упростить тестирование последних изменений.
Помимо этого Google предоставила следующее:
👉 Скрипт для загрузки эмуляторов (AOSP и Google Play Services)
👉 Генератор Docker образов с Android эмулятором
👉 Поддержка работы по ADB с эмулятором в контейнере
👉 Remote streaming: возможность подключения к эмулятору из контейнера через браузер и видеть что происходит, а также взаимодействовать с ним
Пока образ работает только на Linux, но работы по поддержке macOS и Windows ведутся.
Android Developers Blog
Continuous testing with new Android emulator tools
Posted by Lingfeng Yang, Android Studio team Developers often use the Android Emulator during their day-to-day development to quickly t...
#Gradle #CI #Performance
How fast are your Android CI builds? And why it matters
Android проекты растут и разрабатываются долгое время большими командами. Все разработчики локально страдают от того как собираются долго проекты, но на CI это делается еще дольше так как обычно ему надо сделать:
👉 Скомпилировать код
👉 Прогнать Unit тесты
👉 Запустить статический анализатор KtLint, Detekt, Checkstyle, Android Lint и др.
Все это еще происходит медленнее чем на локальной машине т.к. на сервере выключается Gradle демон, который не имеет смысла на CI, когда собирается много разных ветках или вовсе все в Docker контейнерах.
В статье приводится история ребят, которые вместе с DevOps сели решить проблему долгой сборки проекта (47 минут) и как у них получилось (8 минут)
От себя рекомендую периодически запускать Gradle Build Scan, чтобы проверить где у вас есть проблемные места в сборке.
How fast are your Android CI builds? And why it matters
Android проекты растут и разрабатываются долгое время большими командами. Все разработчики локально страдают от того как собираются долго проекты, но на CI это делается еще дольше так как обычно ему надо сделать:
👉 Скомпилировать код
👉 Прогнать Unit тесты
👉 Запустить статический анализатор KtLint, Detekt, Checkstyle, Android Lint и др.
Все это еще происходит медленнее чем на локальной машине т.к. на сервере выключается Gradle демон, который не имеет смысла на CI, когда собирается много разных ветках или вовсе все в Docker контейнерах.
В статье приводится история ребят, которые вместе с DevOps сели решить проблему долгой сборки проекта (47 минут) и как у них получилось (8 минут)
От себя рекомендую периодически запускать Gradle Build Scan, чтобы проверить где у вас есть проблемные места в сборке.
Medium
How fast are your Android CI builds? And why it matters.
Over time our Android CI builds gradually got slower and slower and before we knew it our CI build times were taking 47 minutes and…
#CI #Bitrise
Be effective with Bitrise CI for Android — the lessons I learned the hard way
11 минут
Советы по настройке Bitrise CI, чтобы ваши сборки были как пуля быстрыми и эффективными.
В статье рассматривается:
👉 Запуск Unit тестов
👉 Сборка артефактов
👉 Автоматизация процессов
👉 и другие трюки для ускорения
Be effective with Bitrise CI for Android — the lessons I learned the hard way
11 минут
Советы по настройке Bitrise CI, чтобы ваши сборки были как пуля быстрыми и эффективными.
В статье рассматривается:
👉 Запуск Unit тестов
👉 Сборка артефактов
👉 Автоматизация процессов
👉 и другие трюки для ускорения
Medium
Be effective with Bitrise CI for Android — lessons I learned the hard way.
Ideas around architecture, flavour agnostic unit testing, Gradle usage, keeping your logs and artefacts deployment in order and a few more
#CI #CD
«Ну, покати!» или CI/CD мобильных приложений на основе контракта
Avito делится тем как они заводят процесс релиза мобильного приложения на основе TeamCity и Nupokati.
«Ну, покати!» или CI/CD мобильных приложений на основе контракта
Avito делится тем как они заводят процесс релиза мобильного приложения на основе TeamCity и Nupokati.
Хабр
«Ну, покати!» или CI/CD мобильных приложений на основе контракта
Всем привет! Меня зовут Дмитрий, я релиз-инженер в команде CI/CD Speed Авито. Вот уже несколько лет мы с коллегами отвечаем за всё, что связано с релизами наших...
#Emulator #CI
Android Emulator in a CI environment
Инструкция по созданию Docker контейнера с эмулятора и последующим запуском его на CI. Есть возможность подключения по WebRTC, чтобы видеть, что происходит на экране эмулятора. Также можно подключиться по ADB.
Все это сделано для удобства в скриптах, работа над которыми еще ведется, но уже можно воспользоваться ими можете
Android Emulator in a CI environment
Инструкция по созданию Docker контейнера с эмулятора и последующим запуском его на CI. Есть возможность подключения по WebRTC, чтобы видеть, что происходит на экране эмулятора. Также можно подключиться по ADB.
Все это сделано для удобства в скриптах, работа над которыми еще ведется, но уже можно воспользоваться ими можете
Medium
Android Emulator in a CI environment
Discover how to create a Docker image and remotely access the debugging information
#CI #Tooling
Analyzing your APK during CI/CD
ApkSize-Analyzer - это утилита, которая поможет вам анализировать содержимое вашего APK и анализировать его. Например, на CI вы можете проверить отличие в частях APK. В качестве основы используется Android Studio Plugin для анализа APK.
Возможности:
👉 анализирует файлы, dex, ресурсы в APK
👉 создание отчетов в разных форматах (html, pdf, json)
👉 можно указывать отдельные пакеты для генерации отдельных отчетов
👉 размеры пакетов рассчитываются как комбинация всех dex файлов
👉 отдельный список для изображений, перечисленных в порядке убывания размера
👉 большинство списков отсортированы в порядке убывания их размеров
В будущем планируется добавить поддержку Android App Bundle.
Analyzing your APK during CI/CD
ApkSize-Analyzer - это утилита, которая поможет вам анализировать содержимое вашего APK и анализировать его. Например, на CI вы можете проверить отличие в частях APK. В качестве основы используется Android Studio Plugin для анализа APK.
Возможности:
👉 анализирует файлы, dex, ресурсы в APK
👉 создание отчетов в разных форматах (html, pdf, json)
👉 можно указывать отдельные пакеты для генерации отдельных отчетов
👉 размеры пакетов рассчитываются как комбинация всех dex файлов
👉 отдельный список для изображений, перечисленных в порядке убывания размера
👉 большинство списков отсортированы в порядке убывания их размеров
В будущем планируется добавить поддержку Android App Bundle.
Medium
Analyzing your APK during CI/CD
Not another “Analyzing Apk” Guide.
#CI #CD
Прокачиваем Android проект с GitHub Actions
GitHub - самый популярный сервис для хранения кода, особенно open source проектов. Не так давно на сервисе появилась фича GitHub Actions, которая позволяет автоматизировать ваши процессы, связанные с кодом в рамках GitHub.
В первой части статьи рассматривается настройка автоматической проверки кода на Pull Request и сборка релизных артефактов. Во второй части запускаются UI тесты в Firebase Test Lab
Прокачиваем Android проект с GitHub Actions
GitHub - самый популярный сервис для хранения кода, особенно open source проектов. Не так давно на сервисе появилась фича GitHub Actions, которая позволяет автоматизировать ваши процессы, связанные с кодом в рамках GitHub.
В первой части статьи рассматривается настройка автоматической проверки кода на Pull Request и сборка релизных артефактов. Во второй части запускаются UI тесты в Firebase Test Lab
#GitHub #CI #CD
GitHub Actions for Android developers
После покупки GitHub компанией Microsoft сервис стал обрастать кучей возможностей и стал не только местом хранения кода, но CI/CD (GitHub Actions) и хранилищем артефактов. Причем все это доступно бесплатно, естественно в ограниченном количестве.
В статье автор разбирает как использовать эти возможности, чтобы автоматизировать сборку Android артефактов, тестирование, публикацию релиза + уведомление в Slack. Для всего этого уже существует огромный набор готовых Action от разработчиков, которые и используются в статье.
GitHub Actions for Android developers
После покупки GitHub компанией Microsoft сервис стал обрастать кучей возможностей и стал не только местом хранения кода, но CI/CD (GitHub Actions) и хранилищем артефактов. Причем все это доступно бесплатно, естественно в ограниченном количестве.
В статье автор разбирает как использовать эти возможности, чтобы автоматизировать сборку Android артефактов, тестирование, публикацию релиза + уведомление в Slack. Для всего этого уже существует огромный набор готовых Action от разработчиков, которые и используются в статье.
#CI
Make CI pipeline faster for Android with modular checks on Github Actions
Руководство как запускать проверку через GitHub Actions только на изменённых модулях, чтобы ускорить ваш CI Pipeline.
Make CI pipeline faster for Android with modular checks on Github Actions
Руководство как запускать проверку через GitHub Actions только на изменённых модулях, чтобы ускорить ваш CI Pipeline.
#AndroidBroadcast #CI #CD
🔴 Поднимаем свой CI/CD: Gitea + Drone (Livestream)
Среда, 10 марта, 19.00 (GMT+3)
Обсуждаем зачем вообще заниматься собственной инфраструктурой, сколько времени на это уходит и какие нюансы там есть. В прямом эфире поднимем и настроим минимальную инфраструктуру.
Эксперт Григорий Джанелидзе, независимый разработчик. В прошлом успел побыть Android-разработчиком в Яндексе, потом в Mail.ru, потом снова в Яндексе, потом в Bumble, а потом снова в Яндексе, но уже в роли эксперта по безопасности мобильных приложений.
Свои вопросы можете закинуть в livechat на YouTube
🔴 Поднимаем свой CI/CD: Gitea + Drone (Livestream)
Среда, 10 марта, 19.00 (GMT+3)
Обсуждаем зачем вообще заниматься собственной инфраструктурой, сколько времени на это уходит и какие нюансы там есть. В прямом эфире поднимем и настроим минимальную инфраструктуру.
Эксперт Григорий Джанелидзе, независимый разработчик. В прошлом успел побыть Android-разработчиком в Яндексе, потом в Mail.ru, потом снова в Яндексе, потом в Bumble, а потом снова в Яндексе, но уже в роли эксперта по безопасности мобильных приложений.
Свои вопросы можете закинуть в livechat на YouTube
#GitHub #CI
Work with GitHub Actions in your terminal with GitHub CLI
Теперь вы можете управлять ваши GitHub Actions из терминала вашего
Work with GitHub Actions in your terminal with GitHub CLI
Теперь вы можете управлять ваши GitHub Actions из терминала вашего
Костяк для подготовки CI/CD для Android приложений
Ребят тут сделали шаблон для быстрой настройки CI/CD не основе Fastlane для GitLab CI или GitHub Actions, уведомления Slack
#ci
Ребят тут сделали шаблон для быстрой настройки CI/CD не основе Fastlane для GitLab CI или GitHub Actions, уведомления Slack
#ci
👍25🔥7🤔5😁4
Автоматизация публикации Android приложений в Google Play и Huawei AppGallery — инструкция от А до Я (19 мин)
В руководстве рассказывают как автоматизировать процесс релизов Android-приложений в Google Play и Huawei AppStore. Вы навсегда забудете как это делать вручную и сможете потратить время на что-нибудь более полезное.
#ci #googleplay #appgallery
В руководстве рассказывают как автоматизировать процесс релизов Android-приложений в Google Play и Huawei AppStore. Вы навсегда забудете как это делать вручную и сможете потратить время на что-нибудь более полезное.
#ci #googleplay #appgallery
👍31👎5
Инструкция (EN, 7 мин, ссылка без VPN) по автоматизации генерации Baseline Profile на CI. Нужно будет запускать эмулятор или подключенное устройство к CI, где запустить генерацию профиля
#performance #ci
#performance #ci
👍8
В марте 2024 поменялись правила публикации в Maven Central. В статье (11м) раскрывается как это сделать и автоматизировать через GitHub Actions. Из изменений: работа с jReleaser для подписи артефактов.
#mavencentral #github #ci #публикация
#mavencentral #github #ci #публикация
👍16👎5❤1
🚀 Duolingo ускорили время сборки на CI c 50 до 16 минут
В первую очередь ребята пошли самым простым путем - прокачали железо на CI, что дало основной прирост.
Затем произвели оптимизацию запуска задач на CI, что эффективнее использовать общие ресурсы.
Максимально настроили кэш, чтобы не выполнять одну и ту же работу между сборками.
В коде отказались от старых технологий и лишнего груза на сборку. Например, KAPT поменяли на KSP
Читая статью, сложилось впечатление что ребята сделали самую базу и долго терпели как у них было всё плохо.
#android #ios #ci #производительность
В первую очередь ребята пошли самым простым путем - прокачали железо на CI, что дало основной прирост.
Затем произвели оптимизацию запуска задач на CI, что эффективнее использовать общие ресурсы.
Максимально настроили кэш, чтобы не выполнять одну и ту же работу между сборками.
В коде отказались от старых технологий и лишнего груза на сборку. Например, KAPT поменяли на KSP
Читая статью, сложилось впечатление что ребята сделали самую базу и долго терпели как у них было всё плохо.
#android #ios #ci #производительность
👍38🔥9🤯3 2
Как команда Контура объединила CI/CD для мобильных платформ (5м)
Команда мобильной разработки Контура столкнулась с проблемой разного CI/CD для Android и iOS. Разные пайплайны, gitflow, подходы к секретам и использование сабмодулей создавали сложности в сопровождении и развитии инфраструктуры.
Как было:
👉 Разные процессы CI для Android и iOS
👉 Submodules, не подтягивающие обновления
👉 Дублирование кода
👉 Сложности с мультиплатформенным подходом
Как стало:
👉 Перевели CI на единый шаблон
👉 Отказались от сабмодулей
👉 Унифицировали работу с секретами
👉 Перешли на модульную структуру fastlane
Теперь CI/CD работает как сервис: разработчики могут быстро подключать обновления и собирать пайплайны под новые платформы. Даже после ухода ключевых инженеров система продолжает стабильно работать.
UPD1: Этот процесс был выполнен давно и в Контур уже отказались от Fastlane.
#fastlane #android #ios #ci #автоматизация
Команда мобильной разработки Контура столкнулась с проблемой разного CI/CD для Android и iOS. Разные пайплайны, gitflow, подходы к секретам и использование сабмодулей создавали сложности в сопровождении и развитии инфраструктуры.
Как было:
👉 Разные процессы CI для Android и iOS
👉 Submodules, не подтягивающие обновления
👉 Дублирование кода
👉 Сложности с мультиплатформенным подходом
Как стало:
👉 Перевели CI на единый шаблон
👉 Отказались от сабмодулей
👉 Унифицировали работу с секретами
👉 Перешли на модульную структуру fastlane
Теперь CI/CD работает как сервис: разработчики могут быстро подключать обновления и собирать пайплайны под новые платформы. Даже после ухода ключевых инженеров система продолжает стабильно работать.
UPD1: Этот процесс был выполнен давно и в Контур уже отказались от Fastlane.
#fastlane #android #ios #ci #автоматизация
👍18❤2
CI/CD - неотъемлемая часть любого мобильного и не только проекта! Даже если вы делаете всё один, вас стоит настроить CI/CD. GitHub, Gitlac, Jenkins и множество других решений подойдут для решения задачи.
Если вы решили использовать CI/CD от Gitlab, тогда вам может пригодиться серия статей:
#andorid #ci #gitlab #автоматизация
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31👍12❤3
За годы работы в IT в разных компаниях и командах я понял одну простую вещь:
даже лучшие правила и практики будут нарушаться, если нет автоматической системы, которая их регулярно проверяет.
Сегодня поделюсь, как я подхожу к автоматизации контроля качества кода Android-проектов на Kotlin.
Рассматривать будем только статический анализ — когда код не выполняется, а анализируется как текст.
🛠 Инструменты для анализа кода
• Detekt — статический анализатор Kotlin-кода. Работает быстро, так как проверяет файлы по отдельности, без учёта зависимостей между ними.
• KtLint — проверка стиля кода. Настроек немного, но работает с конфигом .editorconfig, что удобно для командной разработки.
• Android Lint — мощный инструмент для Android-проектов. Может анализировать разные типы исходников и проверять сразу несколько файлов по одному правилу.
⚠️ Запуск из Android Studio и через Gradle может иметь разные настройки. Полный контроль — через Gradle
• Compose Rules — правила для Detekt или KtLint, проверяющие соответствие best-practice работы с Compose.
• Compose Rules от Slack — набор правил для Android Lint (частично пересекается с предыдущим, но есть уникальные).
🔐 Безопасность:
• GitLeaks — поиск в коде секретов и данных, которые не должны попасть в репозиторий.
Можно смело комбинировать несколько линтеров. Лучше перебдеть, чем недопроверить.
🚀 Как запускать проверки
Я использую три уровня автоматизации:
1. Перед пушем кода — быстрые проверки (Detekt, KtLint) в pre-push hook.
⏱️ Цель — не больше 30 секунд, чтобы не раздражать разработчиков, но сразу отсеивать очевидные ошибки.
2. На CI/CD — полная проверка.
⏱️ Лимит — 10 минут. Обычно сюда входят все линтеры, кроме Android Lint, который может сильно замедлить процесс.
3. Ночные прогоны — расширенный Android Lint и тяжёлые правила, если в проекте были изменения.
🛠 Собственные правила
Стандартные линтеры могут покрыть только общие случае и правила, но если есть практики, которые надо форсировать для вашего кода то тут надо будет писать собственные правила. Для анализа Kotlin кода я пишу расширения для Detekt, а во всех остальных случаях - для Android Lint, но довольно редко.
📌 Бонус: AAR-библиотеки могут содержать свои Lint-правила, которые автоматически подключаются при их использовании.
💬 Делитесь в комментариях как вы следите за качеством вашего кода на регулярной основе и какие инструменты используете.
#android #compose #инструменты #ci
Please open Telegram to view this post
VIEW IN TELEGRAM
👍49🔥8🆒3❤2