Круиз-контроль.NET время сборки тратит в состоянии сбоя

У моей команды есть цель минимизировать время, в течение которого наша сборка ломается.

Мы используем CruiseControl.NET для непрерывной интеграции. Я хотел бы узнать, как лучше всего подойти к ответу на следующий вопрос:

"За последний {временной промежуток} сколько времени {имя проекта} провел в нарушенном состоянии?"

Например: "За последний месяц, сколько времени наш проект провел в нарушенном состоянии?"

Существуют ли какие-либо расширенные функции CruiseControl.NET, которые позволили бы сделать эту информацию доступной в каком-либо виде отчета или где-нибудь на панели инструментов?

В качестве альтернативы, как бы вы подошли к разбору файлов артефактов xml, чтобы получить эту информацию?

5 ответов

Вы можете использовать статистический издатель, http://www.cruisecontrolnet.org/projects/ccnet/wiki/Statistics_Publisher и отображать их через плагин статистики проекта.

Я вижу по крайней мере два способа приблизиться к этому:

  1. Вы пишете внешний инструмент, который анализирует XML-файлы журнала CC.NET для проекта (по умолчанию хранятся в подкаталоге buildlogs), вычисляет статистику и записывает HTML-отчет. Это, вероятно, проще сделать, но он не будет напрямую интегрирован с CC.NET.
  2. Вы пишете плагин CC.NET для этого. Вам нужно будет немного разобраться в этом деле. Я предполагаю, что отправной точкой было бы посмотреть на исходный код какого-либо существующего плагина.

Вот несколько ссылок о плагинах CCNET:

Очень быстро изучив документы CC, я думаю, что если бы вы писали свою собственную панель управления круиз-контролем, вы могли бы использовать RSS-ленту результатов сборки, анализировать все значения времени и успешных / неудачных попыток вплоть до вашего порога, а затем Подводя итоги.

Что касается отображения его на приборной панели, я думаю, что Cruise Control имеет архитектуру плагинов, которая может помочь http://cruisecontrol.sourceforge.net/main/plugins.html

Мне нравится cc.net, но в этом случае TeamCity сделает это за вас. У этого есть много другой большой статистики также. Это бесплатно для менее чем 20 проектов.

Поэтому мое окончательное решение не было идеальным, но его было легко сделать, и оно работает:

Я заставил CC.NET отправить электронные письма о сборке на адрес электронной почты (мы назовем его build_emails@build_statistics.com). Затем я использую скрипт ruby, чтобы получать электронные письма через imap и обрабатывать их, чтобы определить время сбоя нашей сборки.

Я не пошел по пути прямого анализа xml, потому что мне пришлось бы анализировать каждый xml-файл на таймфрейме, чтобы построить временную шкалу, а затем перейти по временной шкале, чтобы выполнить мои вычисления. Просто показалось слишком сложным получить такую ​​простую статистику.

Другие вопросы по тегам