Кроссплатформенный конвейер непрерывной интеграции для приложений C ++ / Qt - PullRequest
2 голосов
/ 13 февраля 2012

РЕДАКТИРОВАТЬ 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 будет достаточно?

Итак, кто-нибудь здесь уже построил нечто подобное? Какими именно инструментами?

Спасибо за любые комментарии и предложения.

Ответы [ 2 ]

1 голос
/ 02 марта 2012

Я успешно использовал CMake / CTest / CPack с Jenkins, есть доступный плагин для CMake Builder.

Я обнаружил, что опция ctest --output-on-failure полезна, так как вывод теста показан в Jenkinsошибка при входе в систему.

Я использую Boost.Test фреймворк для тестирования C ++, он отлично работает с ctest, я запускаю его с опцией -l all, чтобы получить все выходные данные журнала, когда что-тоидет не так.

0 голосов
/ 13 февраля 2012

Вы должны быть в состоянии загрузить весь процесс, используя несколько сценариев.

Напишите их в Perl или Python. Существует миллион учебных пособий по загрузке таких процессов.

Если вы застряли на реализации определенной стороны этого процесса сборки, задайте конкретный вопрос об этом.

...