Технологии шаг за шагом отнимают наши рабочие места и грозят добраться до самого ценного — Ctr-C из Stack Overflow и Ctrl-V в родной IDE. Но к счастью, ни одна нейронная сеть пока не научилась программировать лучше тебя. Сегодня мы поговорим о том, как можно использовать DevOps, чтобы избавить от рутины целую команду мобильных разработчиков и даже тебя лично.

Глобально DevOps решает задачу максимальной автоматизации всего, что разумно автоматизировать. Цель простая — сократить время и расходы на выпуск или обновление продукта. Это своего рода очередной виток повышения производительности труда и организации, как иногда говорят, «непрерывной поставки ценности клиенту».


На текущий момент отлично автоматизируются сборка, дистрибуция и тестирование новых версий приложения. В нашей статье мы покажем процесс выстраивания универсального конвейера Mobile DevOps, состоящего из сервиса сборки Bitrise.io, облачной фермы устройств Xamarin Test Cloud и системы получения обратной связи HockeyApp. В качестве подопытного мы будем использовать приложение для Android из набора стандартных семплов на Java.


Замечательная черта современного мира онлайн-сервисов — это наличие открытых API, которые позволяют выстраивать очень удобные конвейеры для переработки твоего кода в качественный продукт.

Для того чтобы цепочка DevOps начала работать, ее необходимо настроить, чем мы и займемся далее. А сперва рассмотрим алгоритм работы конвейера в общих чертах:

  1. Какое-либо внешнее событие (таймер, коммит/pull-request/tag в репозитории, команда из Slack, кнопка на сайте или что-то еще) оживляют всю цепочку.
  2. Система сборки с учетом настроек загружает последний или указанный коммит/ветку из репозитория, запускает окружение для сборки и выдает скомпилированное/упакованное приложение. В Bitrise для этих целей разворачивается отдельная виртуальная машина с уже настроенным окружением, а перед каждой сборкой загружаются из Сети или из кеша необходимые зависимости (Gradle, CocoaPods, NuGet). Помимо базовой проверки кода при компиляции, также можно запустить Unit-тесты, что в mobile актуально для длительных и тяжелых проектов.
  3. Далее приложение выгружается в файловое хранилище или внешний сервис. Bitrise позволяет хостить тестовые сборки на своих серверах и выдает прямую страницу для загрузки и установки в телефон.
  4. Также сборка может быть выгружена в облачную ферму устройств для автоматизированного UI-тестирования.
 

Создаем конвейер

Начнем мы на всякий случай с репозитория для хранения исходных кодов — он должен быть, и точка. Можно использовать Bitbucket, GitHub или любой другой, однако популярные сервисы предпочтительней из-за большего количества готовых интеграций. И лучше использовать Git, так как он поддерживается почти во всех IDE. Считаем, что проект (в нашем примере это классический Navigation Drawer из Android SDK) уже загружен в Bitbucket, который, в свою очередь, подключен к Bitrise.


 

Собираем

Стартовый элемент цепочки DevOps — система сборки. Здесь на вкус и уровень владения админским бубном товарищей нет. Но Bitrise — один из самых простых и функциональных вариантов. Стоит недорого, работает как часы, позволяет полноценно делать сборки для проектов на всех популярных стеках разработки мобильных приложений: iOS + Obj-C/Swift, Android + Java, Xamarin (iOS + Android), Web App (PhoneGap, React Native и другие). И самое главное, Bitrise из коробки умеет настраивать интеграцию с большим количеством внешних систем.

Для начала регистрируем бесплатный trial на Bitrise, создаем в нем новый проект Android и привязываем наш репозиторий. Лучше сразу добавить keystore (и сертификаты iOS, если разрабатываешь под iPhone) для подписи твоего приложения. Лучше пробежаться по созданному Workflow для знакомства и изучения.


Далее жмем кнопку запуска и через некоторое время получаем готовую сборку. Можно погрузиться в логи для изучения подноготной всего процесса.


В Bitrise доступно большое количество дополнительных шагов, которые могут использовать популярные внешние сервисы (включая и твой любимый Slack). При желании можно даже написать свои собственные скрипты (например, для переименования пакета). И при этом никаких хлопот с инфраструктурой и ее настройкой и поддержкой! Время сборки, конечно, будет немного больше, чем на хорошей машине программиста, но зато он позволяет параллельно продолжить работу вместо очередного перерыва на кофе. При необходимости Bitrise может даже выполнить Unit-тесты для твоего проекта, опять же с поддержкой всех популярных платформ и стеков.

Через несколько минут (а иногда и десятков минут, в зависимости от сложности приложения) сборка готова, и мы получаем страницу для загрузки установочного пакета на смартфон. Ссылку можно передать всем заинтересованным лицам.

Продолжение статьи доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все статьи на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта, включая эту статью. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи одну статью

Заинтересовала статья, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для статей, опубликованных более двух месяцев назад.


1 комментарий

Подпишитесь на ][, чтобы участвовать в обсуждении

Обсуждение этой статьи доступно только нашим подписчикам. Вы можете войти в свой аккаунт или зарегистрироваться и оплатить подписку, чтобы свободно участвовать в обсуждении.

Check Also

LUKS container vs Border Patrol Agent. Как уберечь свои данные, пересекая границу

Не секрет, что если ты собрался посетить такие страны как США или Великобританию то, прежд…