Как оптимизировать долгий билд процесс?
От: Sergey J. A. Беларусь  
Дата: 10.10.16 13:58
Оценка:
Всем привет.

Имеется большой, замшелый репозиторий. Периодические ("ночные") билды собираются за 6-8 часов, что не устраивает, поскольку иногда нужно собрать патч или собрать сразу несколько билдов из разных бранчей.

Ищем возможность ускорить всё это дело...

Немного деталей. Репозиторий среднего размера, состоит из примерно 100-200 разношёрстных проектов (C++ под 7 разных студий, .NET, Silverlight, Java, InstallShiled).
На основании всего этого билдится несколько связанных продуктов — сервер, корпоративный сервер, клиент, персональный клиент ... Т.е. проекты где-то больше где-то меньше, но связаны друг с другом.
Примерно половина проектов билдится на переодической основе, вторая половина собирается по надобности и подливается руками.
Используем TeamCity в качестве билд сервера.

Пока рабочая идея следующая:

1. Выделить независимые куски исходников и собирать из них артефакты только при комитах в эти области кода. (TeamCity умеет такое)
2. Выстроить граф зависимостей проектов в TeamCity
3. Подключить в граф проекты собираемые вручную
4. Настроить сборку зависимостей паралельно на разных билд агентах
5. PROFIT ?

Есть у кого другие идеи? Или замечания к рабочей идее?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.