2012-10-09 15 views
6

Attualmente sto sviluppando un semplice plugin che recupera i risultati da una build di Jenkins. Sto estendendo Notifier e usando build.getResults() per ottenere le informazioni. Tuttavia, quando carico il mio plugin, non posso impostarlo come azione post-compilazione.
Quando eseguo le mie build, si interrompono in build.getResults() poiché sto cercando di ottenere i risultati mentre la build è ancora in esecuzione.

Cosa posso fare per ottenere correttamente il risultato della compilazione?
Sviluppo del plugin post-build di Jenkins

risposta

1

Dato che sembra così semplice, sei sicuro di aver bisogno di un plug-in? Dai un'occhiata a usando un Groovy Postbuild step invece; sono molto più facili da scrivere. Ci sono alcuni buoni esempi di utilizzo nel link. Se decidi che hai davvero bisogno di un plugin, vedi se puoi estenderne uno esistente invece di scriverne uno tuo; è un modo più semplice per capire i dettagli della scrittura del plugin Jenkins.

+0

Ho utilizzato il plug-in Groovy Postbuild per richiamare un servizio Web protetto (esposto da Coverity Connect 6.5.3) e ho avuto problemi con l'intera JVM Jenkins a corto di PermGen (aggiornamento JDK 1.7 15). Fino ad ora, il plugin Groovy Postbuild ha funzionato bene per invocare i servizi REST di SonarQube. In breve, fai attenzione che il plugin Groovy Postbuild potrebbe avere dei limiti. – buzz3791

+0

Questa risposta dovrebbe fornire esempi su come eseguire questa operazione, prima di suggerire l'uso di un plug-in esistente. –

+0

@JohnZeller ci sono molti esempi di utilizzo nel link che ho fornito, ma ho modificato la risposta per renderla più chiara. –

2

La cosa migliore è guardare existing plugins which use Notifier extension point (fare clic per espandere l'elenco di plugin di implementazione).

Verificare di disporre della classe di descrizione descrittore (interna) e di config.jelly. Controllare anche i registri jenkins.out e jenkins.err per eventuali eccezioni (come config.jelly malformato).

Edit: In realtà, Notifier sottoclasse di questo plugin sembra davvero semplice come notificanti vanno: https://wiki.jenkins-ci.org/display/JENKINS/The+Continuous+Integration+Game+plugin, si veda in particolare il suo corrispondente config.jelly, ed è GameDescriptor.java, che è stato fatto un classe esterna completa (spesso descrittore è classe interna) GamePublisher.java e. Inoltre, se vuoi delle opzioni nella configurazione globale di Jenkins, hai bisogno di un global.jelly, ma se non hai queste opzioni, è qualcosa che puoi semplicemente lasciare fuori (a differenza di config.jelly, che devi avere per Notifier anche se è vuoto, come qui).

Come nota generale, può essere davvero fastidioso quando le cose non funzionano, e non si ottiene alcun errore, le tue cose semplicemente non sono visualizzate da Jenkins ... Se vuoi solo ottenere le cose per cui lavorare tu, usando la fase di compilazione di Groovy, potresti essere più facile, ma se vuoi far funzionare le cose per gli altri, fare un decente plugin completo riduce le richieste di supporto.

Problemi correlati