2012-02-13 6 views
2

EDIT 2012.03.02: обновленная сборка инструмента с некоторыми другими требованиями. Дополнение.Кросс-платформенный непрерывный интегральный трубопровод для приложений C++/Qt

EDIT 2012.03.05: обновленная сборка инструмента. Сосредоточен на CMake. Добавлен Ant + CMakeAnt.

У меня есть много небольших проектов Visual C++, и я хочу начать использовать для этого непрерывную интеграцию. В этом процессе задействовано множество инструментов. Я начинаю читать статьи здесь и там, и мне трудно понять, какой инструмент может хорошо интегрироваться с другими. Так что я ищу уже испытанным непрерывной интеграции процесса, которые могли бы уважать мои потребности:

Текущий контекст

  • C++/Qt-приложения, разработанные с Visual Studio;
  • Менее 1 000 исходных файлов;
  • Небольшая команда разработчиков;
  • Малый бюджет;
  • Предпочтительно программное обеспечение с открытым исходным кодом/бесплатное программное обеспечение;
  • Ищет простые и простые инструменты. Нет необходимости в чем-то тяжелом и «сильном».
  • Наконец, программное обеспечение пакетов (монтажники, готовые для загрузки) должно работать для окон и OSX. Linux (самые популярные дистрибутивы) - плюс.

Необходимые инструменты

  • Continuous Integration Server:

    должно быть Дженкинс. Я знаю это, и мне это нравится. Я мог бы измениться для другого, если это действительно необходимо.

  • Источник управления Код:

    GIT.

  • Документация Генератор:

    Doxygen.

  • Сложение Инструмент:

    Нам нужно будет генерировать решения и конфигурации для всех платформ, которые мы должны поддерживать. Мне настоятельно рекомендуется использовать CMake для этого. Ant + CMakeAnt (http://code.google.com/p/cmakeant/), похоже, тоже приятное дополнение.

  • Unit Testing Framework:

    CppUnit, C++ Test, Googletest?

  • монтажники Builder

    CPack (часть CMake кажется слишком большим).

  • Оборудование:

    Предпочтительно, одна машина с VirtualBox или VMWare. возможно ли это? Было бы лучше использовать Linux для таких вещей? Или будет достаточно MAC MAC?

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

Благодарим за любые замечания и предложения.

ответ

1

Я успешно использовал CMake/CTest/CPack с Jenkins, есть плагин-плагин CMake.

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

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

0

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

Запишите их в Perl или Python. Есть миллион учебников о том, как загружать эти виды процессов.

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

+0

Спасибо за ваш ответ. Мой вопрос, может быть, не ясен, но на данный момент я только пытаюсь понять, какие инструменты и оборудование использовать в зависимости от моих конкретных потребностей. Тогда я постараюсь его построить. Тестирование каждого из этих инструментов в течение 2 дней займет навсегда и никогда не поможет мне сделать образованный выбор. Вот почему я полагаюсь на опытных людей здесь (тех, кто фактически использовал/построил один) ^^ – Korchkidu