2011-12-19 18 views
10

Versione 2.15 del plug-in Jenkins Email-ext ha aggiunto il supporto per allegare file per creare e-mail di notifica. Mi piacerebbe avere il log di compilazione allegato per creare e-mail di notifica, ma non riesco a capire come farlo.Come si allega un log di compilazione a una notifica via e-mail con il plugin Jenkins Email-ext?

Il log di compilazione sembra essere memorizzato sul nodo master Jenkins (in questo caso, Ubuntu Linux). Ad esempio, /var/lib/jenkins/jobs/<PROJECT_NAME>/builds/<DATE_TIME>/log. Naturalmente, il percorso del log di costruzione cambia ad ogni build. La funzione di collegamento del file Email-ext utilizza per impostazione predefinita i file all'interno dell'area di lavoro del progetto, che si trova sulla macchina di generazione di schiavi di Jenkins (in questo caso, Mac OS X). Ad esempio, ho configurato il mio slave per utilizzare la cartella /Users/<USERNAME>/Jenkins/build_agent/workspace/<PROJECT_NAME>/.

C'è un modo per ottenere Email-ext per allegare un file dal file system del master, invece dello spazio di lavoro sul computer di costruzione slave?

Grazie in anticipo a chiunque possa offrire qualche consiglio. Il Email-ext wiki page attualmente non contiene un esempio di come configurare gli allegati.

risposta

10

Il plugin supporta il collegamento del log di compilazione, è sufficiente selezionare la casella nella configurazione del progetto.

Project Configuration for email-ext

+1

Questo pulsante deseleziona sempre se stesso dopo aver fatto clic su Salva/Applica. Hai mai incontrato questo? Vedi qui: http://stackoverflow.com/questions/15813494/jenkins-email-ext-attach-build-log-not-working Grazie –

13

È possibile utilizzare solo il token $ {BUILD_LOG, maxLines, escapeHtml} nel corpo dell'e-mail per includere il log di compilazione.

Citando il doc-mail-ext Plugin (disponibili here):

"per vedere un elenco di tutti i token di posta elettronica disponibili e ciò che essi mostrano, è possibile fare clic su '' (punto interrogativo) associato al contenuto? Riferimento token nella parte superiore in basso della sezione email-ext nella schermata di configurazione del progetto "

+1

Grazie Vladisld. Questa è una buona risposta. Tuttavia, sto già usando '$ {BUILD_LOG, maxLines = 9999, escapeHtml = false}' nel contenuto di Email-ext. Il mio file di registro è lungo quasi mille righe, quindi mi piacerebbe portarlo fuori dal corpo del messaggio e averlo come allegato. –

4

Dopo aver dormito sul problema e aver fatto ulteriori ricerche, sono giunto alla conclusione che Email-ext non supporta l'allegato di un log di costruzione a una e-mail di notifica di compilazione.

Tuttavia, sono venuto su con un work-around subdolo per utilizzare fino a quando la funzione è disponibile: Io uso la Jenkins costruire token per generare il comando appropriato per copiare il file di registro dal server master al lavoro di costruzione dello schiavo (vedi nota sotto).

Nel progetto, dopo la fase di compilazione principale, ho aggiunto un nuovo passaggio Execute per generare il comando appropriato scp (copia protetta). Questo è il comando (sostituire USER e HOSTNAME con i propri valori, e probabilmente avrete bisogno di adattare il percorso per soddisfare il vostro singolo server):

scp [email protected]:/var/lib/jenkins/jobs/$JOB_NAME/builds/$BUILD_ID/log build.log 

Poi, nella mail-ext Allegati campo della il plugin Email-ext, sono entrato:

build.log 

Ora il log di compilazione viene copiato dal master al lavoro dello schiavo e attaccato per costruire messaggi di posta elettronica di notifica. Ho rimosso il token $BUILD_LOG dal modello del corpo del messaggio.

Nota: per utilizzare questa particolare tecnica, è necessario disporre di ssh senza password configurati tra lo slave e il master, magari utilizzando una passphrase della chiave OpenSSH. Se hai bisogno di aiuto, cerca nel web informazioni sul comando ssh-keygen e forse controlla le esercitazioni come this one. Un approccio simile dovrebbe funzionare su piattaforme che non hanno il supporto integrato per SSH. RoboCopy o simili dovrebbero funzionare su sistemi Windows.

EDIT: L'Email-ext plug-in ora ha la possibilità di allegare un log di compilazione di un messaggio di notifica con un check-box sulla schermata di configurazione del lavoro. Vedi slide's risposta per un esempio.

0

Ho notato che quando posso controllare la casella di allegare costruire registro, si deseleziona anche dopo il salvataggio, ma è attaccato nelle mie email dopo che il messaggio è stato inviato.

0

Firsl di tutti È necessario installare Email Ext plugin. Dopo l'installazione, seguire questo passaggio.

  • Ora dentro al 'Aggiungi azione post-generazione’selezionare Notifica e-mail modificabile e in quella sezione si ha l'opzione Attaccare costruire Log opzione .select come di seguito in foto. enter image description here

dopo di che applicare e salvare. Ora si otterrà sicuramente Accedi allegato Email allegato. Grazie.