2011-11-03 3 views
3

J'essaie de personnaliser le courrier électronique en utilisant Groovy avec le plugin email-ext. Au fur et à mesure que j'ajoute de nouvelles fonctionnalités à ces emails, je peux introduire des erreurs dans les scripts et ainsi recevoir de mauvais mails contenant le StackTrace. Donc, j'aimerais être en mesure d'envoyer des notifications sur les travaux terminés que mes travaux peuvent prendre plusieurs heures (plus de 4 actuellement).
Existe-t-il un moyen de demander à jenkins d'envoyer des notifications sur les travaux terminés (en utilisant Groovy ou tout autre langage de script)?Jenkins - Notifications par courriel

+0

Le plugin Email-poste vous permet d'utiliser un des modèles différents (avec le script de la gelée) en fonction du résultat de la construction. Vous pouvez configurer le plugin pour envoyer un mail différent si la compilation échoue, si elle réussit et à d'autres occasions ... N'est-ce pas ce que vous cherchez? –

+0

Salut, j'ai déjà configuré ces déclencheurs, mais mon besoin est d'ajouter de nouvelles fonctionnalités aux e-mails liés à ces déclencheurs et donc je voudrais être en mesure d'envoyer ces notifications sur les travaux passés. – Dominique

+0

Voulez-vous dire la fonctionnalité de déclenchement dans le plugin [email-ext] [1]? [1]: http://stackoverflow.com/questions/8321649/gitweb-how-to-display-markdown-file-in-html-format-automatically-like-github –

Répondre

0

trouver une solution:

import java.text.SimpleDateFormat; 
import java.util.GregorianCalendar; 
import groovy.text.Template 
import groovy.text.SimpleTemplateEngine 
import javax.mail.* 
import javax.mail.internet.* 

//-------------- Job params -------------- 
projectName="YourProjectName"; 
buildNum = 10; 
templateName="groovy-html-cobertura.template"; 
recipients="[email protected]"; 
sender="[email protected]"; 
smtpHost="mysmtphost"; 
//------------End Job params ------------- 

for (hudson.model.AbstractProject p : hudson.model.Hudson.instance.projects) { 
    if(p.name.equals(projectName)){ 
    for (hudson.model.AbstractBuild b : p.getBuilds()) { 
     if(b.getNumber() == buildNum){ 
     println b; 
     b.reload(); 
     def binding = [ "build" : b, 
         "project" : b.getProject(), 
         "rooturl" : hudson.model.Hudson.getInstance().getRootUrl(), 
         "it" : new  hudson.plugins.emailext.plugins.content.ScriptContentBuildWrapper(b), 
         "spc" : "  " ] 
     def engine = new SimpleTemplateEngine() 
     java.io.File file = new java.io.File(hudson.model.Hudson.getInstance ().getRootPath().getBaseName()+"/email-templates/"+templateName); 
     mailBody = engine.createTemplate(file.getText()).make(binding).toString(); 
     port = 25 
     props = new Properties() 
     props.put('mail.smtp.host', smtpHost) 
     props.put('mail.smtp.port', port.toString()) 
     session = Session.getDefaultInstance(props, null) 

     // Construct the message 
     msg = new MimeMessage(session) 
     msg.from = new InternetAddress(sender) 
     msg.sentDate = new Date() 
     msg.subject = 'Template Test' 
     msg.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients)) 
     msg.setHeader('Organization', 'i-BP') 
     msg.setContent(mailBody, 
        'text/html') 
     // Send the message 
     Transport.send(msg) 
     } 
    } 
    } 
}