Я тоже был на этом пути. Я написал собственную автоматизированную систему сборки 3 раза для различных компаний, в которых я работал. Это всегда было весело, и я из тех людей, которым нравятся пишущие инструменты.
В конце концов, она никогда не была профессиональной системой. Это всегда была система, которая была достаточно хороша, работала для нас и помогала нам. Если, конечно, я не уехал в отпуск или на встречу в другой город и т. Д. Дошло до того, что всякий раз, когда я уезжал из города, сборка выходила из строя, выходила из строя и выходила из строя. Не из-за проблем с нашим кодом, а из-за мелочей, которые я бы ежедневно решал в системе сборки. И когда меня не было с ними, никто не знал, что делать.
Все это отняло у нас основное внимание - нашу собственную разработку программного обеспечения.
Наконец, мы (по моему настоянию) отказались от написанной вручную системы сценариев Perl, которую я написал, и мы приобрели коммерческую систему: Сборки и ошибки Zed
Теперь, когда что-то идет не так, это проблема с нашим собственным кодом. Система сборки вендора работает. Когда у нас есть вопросы, мы их задаем или просим сообщество пользователей. Когда нам нужно понять, как что-то сделать, у них есть люди, чтобы ответить на наши вопросы.
И самое главное, я снова могу взять отпуск: -)
Я до сих пор выполняю большинство задач с помощью системы сборки, но это уже не вопрос написания этого. Это вопрос адаптации наших существующих make-файлов, проектов Visual Studio, скриптов сборки Ant и т. Д. К новой системе.
Поверьте, в этом случае купить намного проще, чем построить. Ваш основной бизнес не создает систему сборки (иначе вы бы не задавали вопрос). Сосредоточьтесь на своем основном бизнесе и купите инструменты, которые вам нужны для всего остального.