Ответ 1
Хадсон (или его вилка Jenkins) действительно не сложно настроить; это то, что мы используем внутри страны. Мы не просто запускаем iphone-сборки из него - на самом деле, для сборки iphone существует только один одиночный mac mini, и это относительно недавнее дополнение. В течение некоторого времени у нас было полдюжины других рабов на других платформах.
Вы можете играть с ним через ссылку "Тест-драйв" на странице Meet Hudson, чтобы понять, насколько легко это настроить. (Это одна из вещей, которая меня продала, с которой было очень легко начать работу, но все еще настраиваемо, расширяемо и достаточно мощно, чтобы мы расширялись в течение последних нескольких лет. Она заменила действительно кудрявую кучу рук- скринированные скрипты и программы, которые, несмотря на то, что я являюсь автором, я был очень рад видеть, что положен на отдых.)
У нас есть бэкэнд hudson, работающий на жестком Mac OSX-сервере, но нет причин, по которым вы не могли бы запустить его практически где угодно (linux, windows, mac).
Что касается его настройки для построения - это около 6 строк оболочки script в конфигурации проекта, в основном вызывающей 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 auth для нас.
Мы активно используем плагин Email-ext, и у вас есть плагин тайм-аут сборки и плагин контрольного трейла, так как есть много других люди, использующие систему, и некоторые из них не очень хорошо себя ведут. Мы коротко экспериментировали с Warnings плагин и Статический код Плагины анализа также должны получить те, которые используются для большего количества проектов (обычно у нас есть предупреждения как ошибки в сборках, но мы используем PC-Lint и другие инструменты для некоторых проектов; вывод данных агрегируется и отслеживается здесь очень хорошо). Наконец, все важные Chuck Norris и Эмоциональный Хадсон плагинов.
В настоящее время мы не запускаем модульные тесты (позор!) на любой из сборников iphone, и мы просто используем обычные функции "Архивировать артефакты", встроенные в hudson для хранения сборок. Доступ к ним возможен через авторизованных пользователей через веб-интерфейс hudson. Я не сомневаюсь, что вам не будет сложно запускать тесты модулей в рамках.
</Fanboy>
Наши единственные реальные проблемы были связаны с AFP и SMB на Mac mini - ничего общего с хадсоном вообще, это просто наша внутренняя сетевая инфраструктура. И мини немного медленнее для моих вкусов - мы обычно запускаем довольно мускулистых строителей-рабов по теории, что быстрый поворот автообъекта - это хорошо. По этой причине мини может быть подарен SSD в какой-то момент.