РЕДАКТИРОВАТЬ 2012.03.02: обновлен раздел инструментов сборки с некоторыми другими требованиями. Добавление предварительного приготовления.
РЕДАКТИРОВАТЬ 2012.03.05: обновлен раздел инструментов сборки. Ориентирован на CMake. Добавлены Ant + CMakeAnt.
У меня много небольших проектов Visual C ++, и я хочу начать использовать непрерывную интеграцию для этого. В этот процесс вовлечено много инструментов. Я начинаю читать статьи тут и там, и мне трудно понять, какой инструмент мог бы хорошо интегрироваться с другими. Поэтому я ищу уже протестированный процесс непрерывной интеграции, который бы соответствовал моим потребностям:
Текущий контекст
- C ++ / Qt приложения, разработанные в Visual Studio;
- Менее 1000 исходных файлов;
- Небольшая команда разработчиков;
- Малый бюджет;
- Предпочтительно с открытым исходным кодом / свободное программное обеспечение;
- Нужны простые в использовании и простые инструменты. Не нужно что-то тяжелое и «мощное».
- Наконец, пакеты программного обеспечения (установщики готовы к загрузке) должны работать для Windows и OSX. Linux (наиболее популярные дистрибутивы) - это плюс.
Необходимые инструменты
Сервер непрерывной интеграции:
Должен быть Дженкинс. Я это знаю и мне это нравится. Я мог бы поменять на другой, если это действительно нужно.
Управление исходным кодом:
GIT.
Генератор документации:
Doxygen.
Инструмент сборки:
Нам потребуется сгенерировать решения и конфигурации для всех платформ, которые нам необходимо поддерживать. Мне настоятельно рекомендуется использовать CMake для этого. Ant + CMakeAnt (http://code.google.com/p/cmakeant/) тоже кажется хорошим дополнением.
Структура модульного тестирования:
CPPunit, C ++ Test, Googletest?
Установщик Builder
CPack (часть CMake тоже выглядит великолепно).
Оборудование:
Предпочтительно, одна машина с VirtualBox или VMWare. это возможно только? Было бы лучше использовать Linux для таких вещей? Или MAC mini будет достаточно?
Итак, кто-нибудь здесь уже построил нечто подобное? Какими именно инструментами?
Спасибо за любые комментарии и предложения.