Какова их цель?
Возьмите на себя нагрузку на машины разработчика, обеспечьте стабильную воспроизводимую среду для сборок.
Почему разработчики не создают проект на своих локальных машинах?
Потому что со сложным программным обеспечением удивительно много вещей может пойти не так, если просто "скомпилировать". проблемы, с которыми я столкнулся:
- неполные проверки зависимостей разных типов, в результате чего двоичные файлы не обновляются.
- Публикация команд завершается сбоем, сообщение об ошибке в журнале игнорируется.
- Сборка включает локальные источники, еще не включенные в систему управления версиями (к счастью, еще нет окон сообщений "чертовы клиенты" ...).
- При попытке избежать вышеуказанной проблемы путем создания из другой папки некоторые файлы были выбраны не из той папки.
- Целевая папка, в которой собираются двоичные файлы, содержит дополнительные устаревшие файлы разработчика, которые не должны быть включены в выпуск
У нас потрясающий рост стабильности, поскольку все публичные выпуски начинаются с перехода из системы управления версиями в пустую папку. Раньше было много «забавных проблем», которые «исчезли, когда Джо дал мне новую DLL».
Неужели некоторые проекты настолько велики, что требуются более мощные машины, чтобы построить их в разумные сроки?
Что «разумно»? Если я запускаю пакетную сборку на своем локальном компьютере, я не могу многое сделать. Вместо того, чтобы платить разработчикам за завершение сборки, заплатите ИТ-специалистам, чтобы они уже купили настоящую машину для сборки.
Я просто не работал над достаточно большими проектами?
Размер, безусловно, является одним из факторов, но не единственным.