После использования Hudson для непрерывной интеграции с предыдущим проектом я хочу настроить сервер непрерывной интеграции для проектов iPhone, над которыми я сейчас работаю. После некоторого исследования выяснилось, что не существует каких-либо механизмов CI, разработанных специально для Xcode, но один парень добился успеха использование круиз-контроля в сочетании с инструментом xcodebuild CLI. Кто-нибудь здесь пробовал это? Существуют ли какие-либо механизмы CI, которые хорошо работают с проектами Xcode?
Я, наверное, попробую круиз-контроль. Я отправлю ответ с моими выводами.
@ yegor256 реально ли запустить Docker с Xcode? Я не нашел базовый образ с OS X в Docker Hub :(





Adium довольно эффективно использует buildbot с Xcode. Мы написали простой make-файл, который вызывает xcodebuild с правильными целями и конфигурациями, но я уверен, что это необязательно.
Адиум молодец! (э ... извините за комментарий, не относящийся к теме. Не мог устоять перед возможностью выразить некоторую признательность)
Я думаю, вы по-прежнему сможете использовать Hudson. Hudson очень гибок и позволяет также использовать сценарии оболочки для сборки: Сценарии оболочки и пакетные команды Windows
Просто введите туда xcodebuild. Взгляните на страницу руководства xcodebuild, чтобы увидеть параметры xcodebuild.
Я использовал CruiseControl с Xcode (аналогично тому, что предлагала Pragmatic Automation), и имел разумный успех. Я также очень хорошо знаком с CruiseControl и его относительно ужасной настройкой формата конфигурации.
Я также использовал BuildBot для хорошего эффекта, но обнаружил, что его сильные стороны не совсем соответствуют моим потребностям (создание распределенных ведомых устройств и создание отчетов по нескольким различным системам). Конфигурирование настроек buildbot может быть искусством само по себе, хотя это несложно. По сути, все дело в написании скриптов на Python.
Поскольку Hudson стал доступен, я бы рекомендовал его как средство непрерывной интеграции. Он имеет веб-интерфейс (на мой взгляд, основной недостаток CruiseControl) и очень гибок в различных поддерживаемых системах. Вы можете легко и очевидно вызывать сборки, управляемые из командной строки. Тем не менее, я не настраивал экземпляр с использованием Hudson и Xcode, в отличие от других систем, так что это отчасти предположение с моей стороны.
Если вы не против жить на передовой, я только что совершил построитель xcode для CruiseControl.
Я успешно использую Hudson на Mac с xcodebuild. С выпуском 3.0 iPhone sdk у вас есть полный контроль над целью, конфигурацией и sdk, на основе которых будет строиться проект.
Это так же просто, как создать этап сборки в hudson и указать xcodebuild для сборки проекта:
xcodebuild -target "myAppAppStore" -configuration "DistributionAppStore" -sdk iphoneos2.1
Предварительная работа окупилась для меня, так как мои сборки работают без каких-либо дополнительных размышлений. Я написал подробное описание в своем блоге, если кому-то интересно.
Воскрешая эту ветку. Я не нашел удовлетворительного решения для получения автоматизированных сборок XCode с помощью модульных тестов на сервере сборки, поэтому я провел небольшое исследование и кодирование. Результатом является это сообщение в блоге, объясняющий все это, и этот скрипт Ruby, который преобразует вывод OCUnit из xcodebuild в формат XML, который JUnit использует для отчетов о тестировании. Я выбрал сервер сборки Hudson.
Обновление 3/2 2012: я обновил это, чтобы использовать некоторые пользовательские сценарии оболочки для сборки и запуска. В наличии здесь. Это хорошо не только для непрерывной интеграции, но и для сборки из командной строки на вашем собственном компьютере.
Дженкинс, кажется, хорошо работает для некоторых людей. (Хотя я никогда раньше не использовал CI-сервер.)
Дженкинс отлично работает. Вы можете либо создать свой проект xcode, написав собственный сценарий оболочки, а затем позволить Jenkins запустить его, либо вы также можете использовать плагин xcode.
Но вы должны осознавать проблему с авторитетом. С небольшими изменениями в конфигурациях Jenkins вы сможете управлять своим CI-сервером за очень короткое время.
Apple только что выпустила (10 июня 2013 г.) для OSX Mavericks (OS X 10.9) новую платформу непрерывной интеграции, которая является наиболее интегрированным решением непрерывной интеграции, которое я видел раньше. Он доступен на сайте developer.apple.com, здесь, на этой странице, есть подробности:
Рекомендую посмотреть презентацию wwdc 2013 по этой теме.
Отлично! Xcode наконец-то получил некоторые подходящие инструменты для тестирования
Ссылка в комментарии выше больше не работает