Перейти к содержимому

Фотография

Continuous integration для C++


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 9

#1 neff

neff

    Новый участник

  • Members
  • Pip
  • 7 сообщений

Отправлено 02 июля 2009 - 12:20

Добрый день.

Наша компания неожиданно решила сменить язык на котором писать следующую версию приложения на C++ в связи с чем появилась необходимость найти приложение для С++ которое будет выполнять следующее:
- делать билды по какому-нибудь ивенту (нажатие кнопки, будтльник, или апдейт сорсов)
- выполнять юнит тесты сразу же по успешному завершению билда
- показывать результаты билдов и/или юнит тестов в каком-нибудь виде
- при необходимости на разных этапах высылать уведомления по почте, например в случае плохого билда, или наоборот что билд был успешным.

Раньше всё писалось на Java и для этих нужд весьма успешно пользовался CruiseControl, теперь нужно найти такое же для C.

Заранее Спасибо!
  • 0

#2 Alfa

Alfa

    Специалист

  • Members
  • PipPipPipPipPip
  • 553 сообщений
  • Город:Moscow

Отправлено 02 июля 2009 - 13:28

А в чем проблема? Чем CruiseControl Вас не устраивает?
Сборка произвольной командой в нем есть (exec). Ну да, лог будет выглядеть не так красиво, как при использовании Ant/maven для сборки. Но все Ваши требования будут выполнены.

Могут еще возникнуть проблемы с логами тестов, но вроде бы (могу ошибаться) все основные фреймворки тестирования для C/С++ поддерживают отчеты в XML совместимом с JUnit.

Кстати вопрос, для сборки собираетесь использовать make?
  • 0

Чубака — это вуки с планеты Киши, но живет Чубака на планете Эндо, а теперь вдумайтесь:
в этом же нет смысла. С какой стати Чубаке, вуки высотой два с половиной метра,
жить среди эвоков, которые чуть выше полуметра. В этом нет абсолютно никакого смысла.


#3 neff

neff

    Новый участник

  • Members
  • Pip
  • 7 сообщений

Отправлено 02 июля 2009 - 13:38

А в чем проблема? Чем CruiseControl Вас не устраивает?
Сборка произвольной командой в нем есть (exec). Ну да, лог будет выглядеть не так красиво, как при использовании Ant/maven для сборки. Но все Ваши требования будут выполнены.

Могут еще возникнуть проблемы с логами тестов, но вроде бы (могу ошибаться) все основные фреймворки тестирования для C/С++ поддерживают отчеты в XML совместимом с JUnit.


CC сейчас устраивает, но хотелось бы знать народное мнение, ведь наверняка есть что-нибудь специально заточенное под cpp, да к тому же может есть что-то поудобнее CC.

Фактически данное событие (смена языка) мы расцениваем как возможность улучшить свои условия, поэтому и интересуюсь.

Кстати вопрос, для сборки собираетесь использовать make?


Пока что решения нет, так что возможны варианты.
  • 0

#4 Alfa

Alfa

    Специалист

  • Members
  • PipPipPipPipPip
  • 553 сообщений
  • Город:Moscow

Отправлено 02 июля 2009 - 13:57

Пока что решения нет, так что возможны варианты.

Это надо решить в первую очередь. Ведь интеграционный сервер будет работать со средством сборки, а не с языком. Может Вы Ant`ом будете собирать (шутка), тогда все прекрасно заработает, почти как с java.
Рекомендую обратить внимание на Scons. Например у Hudson есть его поддержка.
  • 0

Чубака — это вуки с планеты Киши, но живет Чубака на планете Эндо, а теперь вдумайтесь:
в этом же нет смысла. С какой стати Чубаке, вуки высотой два с половиной метра,
жить среди эвоков, которые чуть выше полуметра. В этом нет абсолютно никакого смысла.


#5 the_norn

the_norn

    Активный участник

  • Members
  • PipPip
  • 91 сообщений
  • ФИО:Kononov Roman

Отправлено 06 июля 2009 - 08:37

На самом деле собирать можно чем угодно,почти у всех Серверов Интеграции есть произвольные команды и скрипты,даже make можно прикрутить, на счет заточенных именно под C++ не видел (с с++ мы использовали решения на базе CruiseControl и Bamboo, проект был небольшой)
  • 0

#6 neff

neff

    Новый участник

  • Members
  • Pip
  • 7 сообщений

Отправлено 07 июля 2009 - 09:03

Пока что решения нет, так что возможны варианты.

Это надо решить в первую очередь. Ведь интеграционный сервер будет работать со средством сборки, а не с языком. Может Вы Ant`ом будете собирать (шутка), тогда все прекрасно заработает, почти как с java.
Рекомендую обратить внимание на Scons. Например у Hudson есть его поддержка.


сегодня на совещании будем решать. а какие есть ещё предпочтения кроме Scons?
  • 0

#7 neff

neff

    Новый участник

  • Members
  • Pip
  • 7 сообщений

Отправлено 07 июля 2009 - 09:06

На самом деле собирать можно чем угодно,почти у всех Серверов Интеграции есть произвольные команды и скрипты,даже make можно прикрутить, на счет заточенных именно под C++ не видел (с с++ мы использовали решения на базе CruiseControl и Bamboo, проект был небольшой)


У нас как раз загвоздка в том что проект большой и будет длиться ещё 3-4 года, поэтому нужно выбрать соответствующее решение.

а чем CruiseControl хуже для С++ чем для java? какая часть функционала теряется?
  • 0

#8 Alfa

Alfa

    Специалист

  • Members
  • PipPipPipPipPip
  • 553 сообщений
  • Город:Moscow

Отправлено 07 июля 2009 - 09:20

У нас как раз загвоздка в том что проект большой и будет длиться ещё 3-4 года, поэтому нужно выбрать соответствующее решение.

Тогда советую попробовать (почти) все, что есть, а есть много чего: TeamCity, Cruise, Hudson, CruiseControl, Bamboo, etc. Но CruiseContol у Вас уже используется, может нет резонов слезать, если не найдете killer feature в другом продукте.
Кроме того при правильно организованной сборке сменить интеграционный сервер относительно легко.

а чем CruiseControl хуже для С++ чем для java? какая часть функционала теряется?

Вам придется сборку запускать через exec, что не дает такой красоты и удобства при просмотре лога сборки в веб интерфейсе приложения. В целом мелочь, именно поэтому я вначале спросил, чем Вас не устраивает CC.
  • 0

Чубака — это вуки с планеты Киши, но живет Чубака на планете Эндо, а теперь вдумайтесь:
в этом же нет смысла. С какой стати Чубаке, вуки высотой два с половиной метра,
жить среди эвоков, которые чуть выше полуметра. В этом нет абсолютно никакого смысла.


#9 Sapiens

Sapiens

    Новый участник

  • Members
  • Pip
  • 56 сообщений
  • ФИО:Jukeshov Samat
  • Город:Бишкек

Отправлено 07 июля 2009 - 10:58

neff
ну вот вам ссылки с ходу
http://www.codemesh....oc/ant_cpp.html
http://ant-contrib.s...asks/index.html
Если вы до этого не рассматривали другие CI кроме как СС, то обязательно пройдитесь по всем и лично просмотрите возможности систем. Согласен с Alfa
  • 0

#10 Alfa

Alfa

    Специалист

  • Members
  • PipPipPipPipPip
  • 553 сообщений
  • Город:Moscow

Отправлено 07 июля 2009 - 12:06

ну вот вам ссылки с ходу
http://www.codemesh....oc/ant_cpp.html
http://ant-contrib.s...asks/index.html

Т.е. собирать Ant`ом C++ это ни разу ни шутка. Буду знать, спасибо.

Для Ant есть еще расширение Gant, которое позволяет писать скрипты сборки на Groovy вместо XML. Тоже может в данном случае помочь.
  • 0

Чубака — это вуки с планеты Киши, но живет Чубака на планете Эндо, а теперь вдумайтесь:
в этом же нет смысла. С какой стати Чубаке, вуки высотой два с половиной метра,
жить среди эвоков, которые чуть выше полуметра. В этом нет абсолютно никакого смысла.



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных