Технологии шаг за шагом отнимают наши рабочие места и грозят добраться до самого ценного — 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. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Вариант 2. Открой один материал

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


Check Also

Как учиться пентесту. Советы экспертов и авторов «Хакера»

Начинать что-то изучать всегда непросто, и для новых дисциплин вроде информационной безопа…

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

  1. Аватар

    baragoz

    17.02.2017 at 14:47

    Ноооооу, только не контрол це из стековерфлова)

Оставить мнение