#Multiplatform #Kotlin #CI #CD
Continuous delivery для вашей Kotlin Multiplatform библиотеки
Уже сейчас любому Android разработчику, использующему Kotlin, можно легко заглянуть в будущее языка и узнать как шарить код и с какими проблемами сталкиваются разработчики, которые пишут реальные проекты и выпускаются open source библиотеки.
В статье вы найдёте опыт ребят из Badoo по выстраиванию инфраструктуры CI и CD для сборки и публикации библиотеки Reaktive.
Continuous delivery для вашей Kotlin Multiplatform библиотеки
Kotlin MPP
сейчас одно из самых многообещающих решений для шаринга кода между платформами (мнение лично моё). Да есть Flutter и я жду интересной битвы в будущем.Уже сейчас любому Android разработчику, использующему Kotlin, можно легко заглянуть в будущее языка и узнать как шарить код и с какими проблемами сталкиваются разработчики, которые пишут реальные проекты и выпускаются open source библиотеки.
В статье вы найдёте опыт ребят из Badoo по выстраиванию инфраструктуры CI и CD для сборки и публикации библиотеки Reaktive.
Хабр
Continuous delivery для вашей Kotlin Multiplatform библиотеки
Привет! Меня зовут Юрий Влад, я Android-разработчик в компании Badoo и принимаю участие в создании библиотеки Reaktive — Reactive Extensions на чистом Kotlin. В...
#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
🔥30👍12❤3