2012-10-09 30 views
6

Actualmente estoy desarrollando un plugin simple que recupera los resultados de una compilación de Jenkins. Estoy extendiendo Notifier y usando build.getResults() para obtener la información. Sin embargo, cuando cargo mi complemento, no puedo configurarlo como una acción posterior a la creación.
Cuando ejecuto mis compilaciones, se rompen en build.getResults() ya que estoy tratando de obtener los resultados mientras la compilación sigue ejecutándose.

¿Qué puedo hacer para obtener correctamente el resultado de compilación?
Desarrollo del plugin de post-compilación de Jenkins

Respuesta

1

Dado que esto suena tan simple, ¿estás seguro de que necesitas un complemento? Eche un vistazo a usar un Groovy Postbuild step; son mucho más fáciles de escribir Hay algunos buenos ejemplos de uso en el enlace. Si decide que realmente necesita un complemento, vea si puede ampliar uno existente en lugar de escribir uno propio; es una forma más fácil de comprender los pormenores de la escritura de complementos de Jenkins.

+0

He estado utilizando el complemento Groovy Postbuild para invocar un servicio web seguro (expuesto por Coverity Connect 6.5.3) y he tenido problemas con la totalidad de Jenkins JVM quedando sin PermGen (JDK 1.7 actualización 15). Hasta ahora, el complemento Groovy Postbuild funcionaba bien para invocar los servicios REST de SonarQube. En resumen, ten en cuenta que el complemento de Groovy Postbuild puede tener límites. – buzz3791

+0

Esta respuesta debe proporcionar ejemplos de cómo hacerlo, antes de sugerir el uso de un complemento existente. –

+0

@JohnZeller hay muchos ejemplos de uso en el enlace que proporcioné, pero he editado la respuesta para que quede más claro. –

2

Lo mejor es mirar existing plugins which use Notifier extension point (haga clic para ampliar la lista de complementos de implementación).

Compruebe que tiene la clase de implementación del Descriptor (interno), así como config.jelly. También verifique los registros jenkins.out y jenkins.err para ver si hay excepciones (como config.jelly malformado).

Editar: En realidad, el notificador de subclase de este plugin se ve muy simple como notificadores van: https://wiki.jenkins-ci.org/display/JENKINS/The+Continuous+Integration+Game+plugin, véase especialmente su y la correspondiente config.jelly, y es GameDescriptor.java, que se ha hecho una clase externa completa (a menudo descriptor es clase interna) GamePublisher.java. Además, si desea opciones en la configuración global de Jenkins, necesita un global.jelly, pero si no tiene tales opciones, eso es algo que puede omitir (a diferencia de config.jelly, que debe tener para Notifier incluso si es vacío, como aquí).

Como nota general, puede ser realmente molesto cuando las cosas no funcionan, y no obtienes ningún error, tus cosas simplemente no las muestra Jenkins ... Si solo quieres que las cosas funcionen para usted, usando el paso de compilación de Groovy puede ser más fácil, pero si desea hacer que las cosas funcionen para otros, entonces hacer un complemento completo decente reduce las solicitudes de soporte.

Cuestiones relacionadas