У моей команды есть цель минимизировать количество времени, что наша сборка повреждается.
Мы используем CruiseControl.NET для непрерывной интеграции. То, что я хотел бы узнать, - то, как лучше всего приблизиться к ответу на следующий вопрос:
"В последнем {промежуток}, сколько время {название проекта} потратило в поврежденном состоянии?"
Например: "За прошлый 1 месяц, сколько время наш проект провело в поврежденном состоянии?"
Есть ли какие-либо расширенные функции CruiseControl.NET, который упростил бы предоставление доступа к этой информации, в некотором типе отчета или где-нибудь в панели инструментов?
С другой стороны, как Вы приблизились бы к парсингу xml файлов артефакта для подбирания этой информации?
Испытав, что имел очень быстрый взгляд на Docs CC, я представляю, если вы пишете свой собственный приборной панель Cruise Control, вы могли бы потреблять RSS-канал результатов сборки, разбирать во время даты и Успех / отказ состояния до вашего порога, затем подводя итоги итоги.
Что касается отображения его в приборной панели, я думаю, что круиз-контроль имеет архитектуру плагина, которая может помочь http://cruiseControl.sourceforge.net/main/plugins.html
Я вижу, по крайней мере, два способа приблизиться к этому:
Вот некоторые ссылки о плагинах CCNet:
Вы можете использовать издатель статистики, http://www.cruisecontrolnet.org/projects/ccnet/wiki/statistics_publisher И вы можете отобразить их через плагин статистики проекта
Мне нравится cc.net, но в данном случае TeamCity делает это за вас. У него также есть много другой отличной статистики. Это бесплатно менее чем для 20 проектов.
Итак, мое окончательное решение не было идеальным, но его было легко сделать, и оно работает:
Я попросил CC.NET отправлять электронные письма о сборке на адрес электронной почты (назовем его (скрытым)). Затем я использую ruby-скрипт для получения писем через imap и их обработки, чтобы определить время сбоя нашей сборки.
Я не пошел по маршруту прямого синтаксического анализа xml, потому что я пришлось бы анализировать каждый xml-файл в указанном временном интервале, чтобы построить временную шкалу, а затем переходить к временной шкале для выполнения моих расчетов. Просто казалось слишком сложным получить такую простую статистику.