7

Mi equipo tiene el objetivo de minimizar la cantidad de tiempo que se rompe nuestra compilación.Cruise Control .NET time build gasta en estado fallido

Utilizamos CruiseControl.NET para una integración continua. Lo que me gustaría averiguar es cuál es la mejor forma de abordar la respuesta a la siguiente pregunta:

"En el último {timespan}, ¿cuánto tiempo ha pasado {project-name} en un estado dañado?"

Por ejemplo: "Durante el último mes, ¿cuánto tiempo ha gastado nuestro proyecto en un estado defectuoso?"

¿Existen funciones avanzadas de CruiseControl.NET que faciliten la disponibilidad de esta información en algún tipo de informe o en algún lugar del tablero?

Como alternativa, ¿cómo abordaría el análisis de los archivos de artefactos xml para obtener esta información?

+0

"Mi equipo tiene el objetivo de minimizar la cantidad de tiempo que se rompe nuestra construcción." ¿Por qué necesita esto? Por favor, describa un escenario en el que pueda usar esta información. Si tiene 10 horas en estado quebrado o 3 días, ¿qué le dará? – Restuta

+0

Restuta: Para nuestro equipo, una compilación rota representa un error. Tenemos un conjunto de pruebas automatizadas en varios niveles de nuestro sistema. Cuando una de estas pruebas falla debido a un cambio de código, significa que hemos agregado un error. Los errores no son tolerables y nos gustaría hacer que se solucionen como una prioridad. Tener las estadísticas es solo un medio para cuantificar nuestro rendimiento para cumplir con nuestro objetivo de atender rápidamente y corregir errores. Además, utilizamos CruiseControl.NET para implementar nuestro sitio de desarrollo, por lo que siempre que se rompa una compilación, los nuevos cambios de código no se reflejarán en nuestro sitio de desarrollo. Nos gustaría mantener nuestro sitio de desarrollo actualizado. – bhazzard

+0

Conteo de compilación roto es en mi humilde opinión una medida mucho mejor que el tiempo pasado en este estado. – skolima

Respuesta

1

Después de echar un vistazo muy rápido a los documentos CC, me imagino que si escribiera su propio panel de Control de cruceros, podría consumir la fuente RSS de resultados de compilación, analizar todos los tiempos y estados de éxito/falla hasta su umbral, luego sumar los totales.

En cuanto a mostrarla en un tablero de instrumentos, creo Cruise Control tiene una arquitectura de plugin que podría ayudar http://cruisecontrol.sourceforge.net/main/plugins.html

+0

Me refiero específicamente a CruiseControl.NET. ¿Sabe si alguna de esa documentación de CruiseControl también se aplica a CruiseControl.NET? – bhazzard

2

Veo por lo menos dos maneras de abordar este:

  1. Usted escribe un herramienta externa que analiza los archivos de registro XML de CC.NET para un proyecto (se almacena en el subdirectorio buildlogs de manera predeterminada), calcula las estadísticas y escribe un informe HTML. Esto es probablemente más fácil de hacer, pero no se integrará directamente con CC.NET.
  2. Usted escribe CC.NET plug-in para hacer esto. Tendrás que investigar un poco en este caso. Creo que el punto de partida sería mirar el código fuente de algún complemento existente.

Éstos son algunos enlaces sobre los plugins CCNET:

0

Así que mi eventual solución no era ideal, pero era fácil de hacer y funciona:

Pedí a CC.NET que envíe mensajes de compilación a una dirección de correo electrónico (lo llamaremos [email protected]_statistics.com). Luego utilizo un script de ruby ​​para obtener los correos electrónicos a través de imap y procesarlos para determinar nuestro tiempo de falla de compilación.

No hice la ruta de analizar directamente el xml porque habría tenido que analizar cada archivo xml en el marco de tiempo para crear una línea de tiempo y luego revisar la línea de tiempo para hacer mis cálculos. Parecía demasiado complicado obtener una estadística simple como esta.

+0

Actualización: esta resultó ser una terrible solución imposible de mantener. : P – bhazzard

0

Me gusta cc.net, pero en este caso TeamCity simplemente hace esto por usted. También tiene muchas otras estadísticas excelentes. Es gratis para menos de 20 proyectos.

+0

Team City se ve bastante limpio. Por curiosidad, ¿cómo responderíamos a esta pregunta con TeamCity? – bhazzard

+0

@bhazzard: Team City muestra las estadísticas de cada configuración de compilación que muestra el tiempo para arreglar la construcción durante un día, una semana, un mes, un trimestre, un año o todo el tiempo. sus documentos muestran un ejemplo de la página de estadísticas http://confluence.jetbrains.net/display/TCD5/Statistics. También tiene una API apta que puedes usar para consultarla. No puedo decir que ya probé el método de consulta. Solo miro el gráfico. –

Cuestiones relacionadas