Хочется автоматизировать процесс continuous integration (сейчас билды собираются полуавтоматически несколько раз в день), но для нашего проекта возникает ряд сложностей, которые пока неясно, как решать:
Несколько целевых платформБилды надо собирать для windows 32/64 bit и linux 32/64 bit, дальше будет больше. Варианты сборки:
* два сервера интеграции (не хотелось бы),
* один сервер с виртуалкой (на этапе прогона тестов будет плохо, потому что нужно аппаратное ускорение графики, отсутствующее в виртуальной машине).
Длительное время сборкиПолная сборка под винду занимает около получаса (на средней машине), под линуксом за счет ccache и distcc - не более 5 минут (C++, codebase под 400k строк). Вариантов два:
* собирать только наиболее часто используемые билды, например - debug 32bit (не хотелось бы, потому что остальные тогда тестироваться будут намного хуже),
* купить-таки incredibuild или аналог (без понятия, как их интегрировать с нашей системой сборки на основе SCons).
Отсутствие платформы для continuous integrationПерспектива писать очередной велосипед не пугает, но вдруг есть уже готовое кросс-платформенное решение на Python, дружественное к SCons и Trac? Пока нашел только
Bitten - a continuous integration plugin for Trac, но он решает только часть проблемы.
Trigger и вывод статистики думаю завязать на веб-сервер, так проще всего в нашем гетерогенном окружении, наверное.
PS: С благодарностью выслушаю советы по теме, особенно интересен практический опыт и информация о всяких подводных камнях.
PPS: Кстати, нашел
неплохую статью по теме.