Hudson (или его форк Jenkins) действительно несложно настроить; это то, что мы используем внутри компании. Мы не просто запускаем из него сборки iphone - на самом деле, для сборок iphone настроен только один одинокий Mac mini, и это относительно недавнее дополнение. Некоторое время у нас было полдюжины других рабов для других платформ.
Вы можете поиграть с ним, перейдя по ссылке «Test Drive» на странице Познакомьтесь с Хадсоном страницу, чтобы понять, насколько легко ее настроить. (Это одна из тех вещей, которые мне понравились; начать работу с ним было действительно легко, но все же настраиваемым, расширяемым и достаточно мощным, чтобы мы продолжали расширяться в течение последних нескольких лет. Он заменил действительно громоздкую кучу ручных ... свернутые скрипты и программы, которые, несмотря на то, что я был автором, были очень счастливы, когда они были похоронены.)
У нас есть бэкэнд Hudson, работающий на мощном сервере Mac OSX, но нет причин, по которым вы не могли бы запустить его где угодно (Linux, Windows, Mac).
Что касается настройки его для сборки - это около 6 строк сценария оболочки в конфигурации проекта, в основном вызывая xcodebuild и передавая ему -project и -configuration аргументы.
Пример:
cd ${WORKSPACE}/Engineering/
set -e
set -v
xcodebuild -project foo.xcodeproj -alltargets -configuration Distribution clean
xcodebuild -project foo.xcodeproj -alltargets -configuration Release clean
xcodebuild -project foo.xcodeproj -alltargets -configuration Debug clean
xcodebuild -project foo.xcodeproj -alltargets -configuration Distribution
xcodebuild -project foo.xcodeproj -alltargets -configuration Release
xcodebuild -project foo.xcodeproj -alltargets -configuration Debug
Мы еще не настроили подчиненное устройство для работы в качестве службы - это в списке TODO. А пока мы просто запускаем его через JNLP всякий раз, когда перезагружаем мини-компьютер, на котором он включен.
Репозиторий - это SVN, и мастер hudson позаботится о том, чтобы запомнить для нас информацию аутентификации https.
Мы активно используем плагин Email-ext и имеем плагин тайм-аута сборки и плагин контрольного журнала, поскольку систему используют много других людей, а некоторые сборки ведут себя некорректно. Мы кратко поэкспериментировали с подключаемым модулем Warnings и также плагины статического анализа кода, их необходимо использовать в большем количестве проектов (у нас обычно есть предупреждения как ошибки в сборках, но мы действительно используем PC-Lint и другие инструменты в некоторых проектах; агрегирование и отслеживание вывода здесь очень приятно). Наконец, очень важные Чак Норрис и Плагины Emotional Hudson.
В настоящее время мы не проводим модульные тесты (позор!) Ни на одной из сборок iphone, и мы просто используем обычную функцию «Архивировать артефакты», встроенную в hudson, для хранения сборок. Доступ к ним можно получить через авторизованных пользователей через веб-интерфейс Hudson. Я не сомневаюсь, что вам будет несложно запускать модульные тесты в рамках.
‹/Fanboy›
Наши единственные настоящие проблемы были связаны с AFP и SMB на Mac mini - ничего общего с Hudson, а просто с нашей внутренней сетевой инфраструктурой. И mini на мой вкус немного медленный - мы обычно запускаем довольно мощные ведомые сборки, исходя из теории, что быстрое выполнение автосборки - это хорошо. По этой причине в какой-то момент mini может быть подарен SSD.
person
leander
schedule
03.10.2010