2011-10-14 3 views
31

Existe-t-il un moyen d'importer le journal des modifications généré par Jenkins à l'objet d'un e-mail (via l'e-mail par défaut ou le email-ext plugin)? Je suis nouveau dans la configuration de Jenkins, donc je m'excuse si c'est un problème simple, mais je n'ai pas pu trouver quelque chose sur la documentation d'email-ext.Comment inclure git changelog dans les emails de Jenkins?

+0

Avez-u obtenir une solution? –

Répondre

54

Je configuré mon plug-in Email-poste à utiliser les changements Token (official documentation here):

Changes: 
${CHANGES, showPaths=true, format="%a: %r %p \n--\"%m\"", pathFormat="\n\t- %p"} 

qui imprime ce qui suit dans mes constructions notifications:

Changes: 
Username: 123 
    - Project/Filename1.m 
    - Project/Filename2.m 
    -- "My log message" 

Pour les messages HTML, je placé le même code dans un div et le formatage ajouté:

<div style="padding-left: 30px; padding-bottom: 15px;"> 
${CHANGES, showPaths=true, format="<div><b>%a</b>: %r %p </div><div style=\"padding-left:30px;\"> &#8212; &#8220;<em>%m</em>&#8221;</div>", pathFormat="</div><div style=\"padding-left:30px;\">%p"} 
</div> 

Voici un samp le capture d'écran de la façon dont il regarde dans les e-mails envoyés par Jenkins maintenant (ce particulier commit est venu de Subversion, mais il fonctionne exactement de la même chose pour Git et d'autres systèmes de contrôle de version):

Change list for Jenkins

+2

Comment avez-vous su cela? J'ai regardé cette page de documentation officielle, et je ne vois pas: 1) la liste des jetons utilisables et comment les utiliser, 2) où les mettre ("Default Content" dans la page "Configurer le système" de Jenkins?). – dfrankow

+0

On dirait que chaque classe Java dans https://github.com/hudson-plugins/email-ext-plugin/tree/master/src/main/java/hudson/plugins/emailext/plugins/content est un jeton. – dfrankow

+0

En outre, en cliquant sur le? à droite de "Référence de jeton de contexte" ci-dessous "Contenu par défaut" donne des descriptions. – dfrankow

14

de l'original documentation: Pour voir une liste de tous les jetons de courrier électronique disponibles et ce qu'ils affichent, vous pouvez cliquer sur le "?" (point d'interrogation) associé à la référence de jeton de contenu au bas de la section e-mail sur l'écran de configuration du projet.

Voici résultat:

${CHANGES} 
Displays the changes since the last build. 

showDependencies 
    If true, changes to projects this build depends on are shown. Defaults to false 
showPaths 
    If true, the paths, modifued by a commit are shown. Defaults to false 
format 
    For each commit listed, a string containing %X, where %x is one of: 

    %a 
     author 
    %d 
     date 
    %m 
     message 
    %p 
     path 
    %r 
     revision 

    Not all revision systems support %d and %r. If specified showPaths argument is ignored. Defaults to "[%a] %m\\n" 
pathFormat 
    A string containing %p to indicate how to print paths. Defaults to "\\t%p\\n" 
0

pas dans le sujet d'un e-mail que vous pouvez envoyer le journal des modifications au destinataire en tant que pièce jointe dans un courrier à l'aide Git Changelog Plugin que l'action post-construction dans Jenkins emploi. Sélectionnez Create a file case à cocher, donner un nom à un fichier (CHANGELOG.md pour moi), comme dans l'image ci-dessous:

enter image description here

Assurez-vous que vous avez configuré code source de gestion comme GIT dans le document JOB Jenkins.

Ensuite, créez Editable Email Notification post action de construction et de copier le nom du changement git fichier journal que la valeur de Attachments, comme dans l'image ci-dessous:

enter image description here

Questions connexes