2012-05-16 13 views
5

Busco a una solución que nos permita categorizar construir fracasos como:¿Cómo categorizar las fallas de compilación con jenkins?

  • desarrollador (un desarrollador añadió mal código)
  • sistema de construcción (error en el sistema de construcción)
  • problema de infraestructura (servidores no responden)

sería muy bueno si esto se podría hacer automáticamente la mayoría de las veces, en base a la salida de la consola, pero también necesitamos una opción para hacer ab Uild para ser de cierto estado.

¿Cómo podemos obtener este comportamiento de jenkins?

+1

¿Su pregunta es que (1) ya tiene un mecanismo para determinar las causas de falla y solo está buscando formas de informarlas adecuadamente o (2) que está buscando formas de implementar dicho mecanismo? –

+0

Digamos que podría implementar yo mismo la detección de fallas, pero necesito encontrar una manera de almacenar el motivo del error en la base de datos de jenkins. Si no existe nada como esto, aceptaría un conjunto de consejos sobre cómo implementarlo. – sorin

Respuesta

1

Para propósitos de información que puede utilizar la descripción acumulación (para editar de forma manual con el fin de ver cómo funciona ir a http://[jenkins_server]/job/[job_name]/[build_number]/editDescription, o haga clic en 'añadir una descripción' en la página de estado de acumulación).

Programmatically puede establecer a través de Jenkins CLI (set-build-description comando); o de Groovy a través del método Jenkins Java API - Run::setDescription().

Los scripts Groovy se pueden invocar a través de Groovy Plugin o Groovy PostBuild Plugin, o ambos.

2

El Build Failure Analyzer plugin le permite establecer expresiones regulares para categorizar compilaciones actuales y futuras. Una vez que se han establecido las expresiones regulares, la detección es automática para las compilaciones actuales y futuras. Esto puede ser exactamente lo que buscas.

También he implementado un plug-in de categorización de fallas manual liviano para Jenkins, que proporciona un menú desplegable simple y un campo de texto adicional para categorizar fallas a mano. Esto se hizo para un proyecto de investigación que estudiaba fallas de construcción. Las categorizaciones se guardan actualmente como XML separados en el directorio de cada compilación, para no tener ningún impacto en los propios archivos de Jenkins. Las categorías se muestran en listas de compilación y en una página de categorización separada para cada compilación.

Lightweight Jenkins plugin for manual failure categorization

Lamento decir que el plugin no es compartida actualmente en cualquier lugar, ya que contiene algunas codificaciones-duros para un proyecto específico. Si hay una demanda de dicho complemento, puedo volver a visitar el código y publicarlo como fuente abierta. Sin embargo, para sus propósitos, parece que la solución automática de Build Failure Analyzer sería más adecuada.

El plug-in es muy simple y las cosas similares no son difíciles de implementar. Si desea hacer algo similar usted mismo, o ampliar el plug-in automático Build Failure Analyzer para satisfacer sus necesidades, las páginas Jenkins plugin tutorial y Extend Jenkins son un buen punto de partida para el desarrollo del complemento Jenkins. Para la persistencia, familiarizarse con XStream sería beneficioso, ya que eso es lo que Jenkins y la mayoría de los complementos utilizan internamente para serializar datos en XML.

+0

¡Debe compartirlo de su código! GitHub Gist es una opción, solo agregue un enlace en los comentarios aquí. Necesito descubrir qué pruebas fallan con más frecuencia. Build Failure Analyzer permite identificar las fallas de compilación, pero luego necesito hacer algunas estadísticas sobre las fallas. Digamos, durante la última semana tuvimos un tiempo X fallido, un error en el tiempo Y, un error en el tiempo Y, etc. – sakovias

1

Esta herramienta en la que trabajé podría ayudarlo: https://github.com/nacuteodor/SearchInJenkinsLogs. Esto se puede integrar con un trabajo de Jenkins. Puede encontrar un texto buscado que especifique una expresión regular en artefactos de compilación, o pruebas de fallas e imprimirá los nodos de compilación y los informes de pruebas fallidas, los enlaces ordenados por compilación y pruebas. Además, tiene una función para agrupar las fallas similares comunes usando un umbral de diferencia máxima, ordenado por recuento de fallas grupales.

Puede utilizar esta herramienta para buscar bloqueos en los registros de artefactos, que desea que se le informe y se corrija a.s.a.p, y puede hacer que el trabajo envíe una notificación por correo electrónico o falle la construcción del trabajo de la herramienta. Es posible que agregue algunas otras características en el futuro.

Cuestiones relacionadas