Existe-t-il un moyen d'importer le journal des modifications généré par Jenkins vers le sujet d'un e-mail (via l'e-mail par défaut ou plug-in e-mail )?
Je suis nouveau dans la configuration de Jenkins, donc je m'excuse si c'est un problème simple, mais je n'ai rien trouvé sur la documentation de l'email-ext.
J'ai configuré mon plug-in Email-ext pour utiliser le jeton CHANGES ( documentation officielle ici ):
Changes:
${CHANGES, showPaths=true, format="%a: %r %p \n--\"%m\"", pathFormat="\n\t- %p"}
Cela imprime ce qui suit dans mes notifications de build:
Changes:
Username: 123
- Project/Filename1.m
- Project/Filename2.m
-- "My log message"
Pour les messages HTML, j'ai placé le même code dans un div et ajouté un formatage:
<div style="padding-left: 30px; padding-bottom: 15px;">
${CHANGES, showPaths=true, format="<div><b>%a</b>: %r %p </div><div style=\"padding-left:30px;\"> — “<em>%m</em>”</div>", pathFormat="</div><div style=\"padding-left:30px;\">%p"}
</div>
Voici un exemple de capture d'écran de l'apparence des e-mails envoyés par Jenkins maintenant (ce commit particulier est venu de Subversion, mais il fonctionne exactement de la même manière pour Git et d'autres systèmes de contrôle de version):
À partir de la documentation d'origine: Pour voir une liste de tous les jetons de messagerie 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 le écran de configuration du projet.
Voici le 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"
Pas dans l'objet d'un e-mail, mais vous pouvez envoyer le journal des modifications au destinataire sous forme de pièce jointe dans un e-mail en utilisant Git Changelog Plugin comme action de post-construction dans Jenkins
Job. Sélectionnez Create a file
case à cocher, donnez un nom à un fichier (CHANGELOG.md
pour moi), comme dans l'image ci-dessous:
Assurez-vous que vous avez configuré Gestion du code source comme [~ # ~] git [~ # ~] dans Jenkins JOB.
Ensuite, créez Notification modifiable par e-mail action de post-génération et copiez le nom du fichier journal des modifications git comme valeur de Attachments
, comme dans l'image ci-dessous:
À partir de la version 2.0 et ultérieure de Git Changelog Plugin , vous pouvez obtenir le journal des modifications sous forme de chaîne dans un pipeline. Et puis il suffit d'utiliser cette variable dans l'e-mail.
node {
deleteDir()
sh """
git clone [email protected]:jenkinsci/git-changelog-plugin.git .
"""
def changelogString = gitChangelog returnType: 'STRING',
from: [type: 'REF', value: 'git-changelog-1.50'],
to: [type: 'REF', value: 'master'],
template: """
<h1> Git Changelog changelog </h1>
<p>
Changelog of Git Changelog.
</p>
{{#tags}}
<h2> {{name}} </h2>
{{#issues}}
{{#hasIssue}}
{{#hasLink}}
<h2> {{name}} <a href="{{link}}">{{issue}}</a> {{title}} </h2>
{{/hasLink}}
{{^hasLink}}
<h2> {{name}} {{issue}} {{title}} </h2>
{{/hasLink}}
{{/hasIssue}}
{{^hasIssue}}
<h2> {{name}} </h2>
{{/hasIssue}}
{{#commits}}
<a href="https://github.com/tomasbjerre/git-changelog-lib/commit/{{hash}}">{{hash}}</a> {{authorName}} <i>{{commitTime}}</i>
<p>
<h3>{{{messageTitle}}}</h3>
{{#messageBodyItems}}
<li> {{.}}</li>
{{/messageBodyItems}}
</p>
{{/commits}}
{{/issues}}
{{/tags}}
"""
mail bcc: '', body: """Here is the changelog:
${changelogString}
""", cc: '', from: '', replyTo: '', subject: 'The Changelog', to: 'the@email'
}