Continuous Integration в XCode5

в 14:33, , рубрики: bots, continuous integration, iOS, mobile development, xcode, Блог компании Touch Instinct, разработка под iOS, метки: , , ,

В пятой версии XCode появился Continuous Integration. Он работает через XCode службу OS X Server ($20, AppStore).

XCode Service умеет все тоже что и любой Continuous Integration сервер, возможно чуть меньше. Огромный плюс — полная интеграция с XCode и свойственная Apple «работа из коробки». Я запустил авто-сборку проекта за полчаса, хотя раньше ни разу не настраивал CI сервер. И не нужно курить мануалы как правильно собирать приложение из командной строки, как включить эмулятор или запустить тесты на устройстве.

xcode continuos integration

XCode Service работу по автоматизации выполняют боты. Бот

  • Забирает проект из GitHub или SVN.
  • Проводит статистический анализ кода.
  • Собирает проект, для изборки используются общие схемы, они создаются через XCode и хранятся в репозитории.
    Continuous Integration в XCode5
  • Выполняет Unit тесты, unit тесты также встроены в XCode, тесты можно выполнить на любом устройстве подключенном к CI серверу и на любом установленном эмуляторе.
    Continuous Integration в XCode5
  • Оповещает о проваленной сборке или тестировании все кто комитил в репозиторий.

Сборка проекта запускается по времени, вручную или после каждого коммита.

Подробная инструкция по установке на сайте Apple.

Настройка занимает 30 минут. Очень порадовало, что все работает из коробки и интегрировано. Юнит-тесты и боты создаются в XCode, там же красивые отчеты о выполнении тестов и сборки.

И пара полезный рецептов.

Выгрузка в Test Flight

В пункте Archive схемы добавляем примерно такой Post-Action

curl http://testflightapp.com/api/builds.json
-F file=${BUILD_ROOT}/Debug-iphoneos/${FULL_PRODUCT_NAME}
-F api_token='your_api_token'
-F team_token='your_team_token'
-F notes='This build was uploaded via the upload API'
-F notify=True
-F distribution_lists='Internal, QA'

UI-тестирование

К сожалению, автоматизированное тестирование UI через стандартный UIAutomation нельзя запустить на build-сервере (ладно, вообще можно, но java script и его глюки сводят на нет преимущества).

Попробуем наладить UI-тестирование через KIF


Подписывайтесь на наш хабра-блог. Каждый четверг полезные статьи о мобильной разработке, маркетинге и бизнесе мобильной студии.

Автор: junk

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js