Круиз-контроль. NET время сборки тратит в состоянии сбоя - PullRequest
7 голосов
/ 19 января 2010

Моя команда ставит перед собой задачу минимизировать время, в течение которого наша сборка нарушается.

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

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

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

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

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

Ответы [ 5 ]

2 голосов
/ 25 января 2010

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

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

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

2 голосов
/ 30 января 2010

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

1 голос
/ 19 января 2010

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

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

0 голосов
/ 24 февраля 2010

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

0 голосов
/ 24 февраля 2010

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

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

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

...