моя команда в настоящее время использует buildbot для автоматизации ночных и непрерывных сборок и регрессионных тестов. Для сборки и модульных тестов строитель просто вызывает script, который синхронизирует источники с p4, а затем запускает xcodebuild
. Тесты регрессии также запускаются оболочкой script и сами являются комбинациями сценариев оболочки и AppleScripts. Все сборки выполняются в одной системе, но затем триггеры buildbot запускаются на нескольких компьютерах Mac, с разной архитектурой и комбинациями ОС. То, что мне нравится в buildbot, - это автоматические триггеры (поэтому тесты выполняются только в том случае, когда и когда сборка завершается успешно) и отчет, включая просмотр водопада, для просмотра общего состояния.
Однако я вижу и ряд проблем. Процесс "master", который координирует сборки, либо протекает, либо просто имеет огромный рабочий набор, что означает, что он потребляет пару гигабайт памяти. Иногда сетевые проблемы означают, что раб будет потерян; вместо того, чтобы повторять попытку позже, это просто закончит сборку. Фактически, если подчиненное устройство должно быть запущено для зависимой сборки, оно не сможет выполнить первую сборку после того, как она была успешно завершена.
Итак, что вы используете для автоматизации ваших Xcode-сборок и модульных тестов? Как эти решения работают на вас? Что бы вы рекомендовали?