plugin notification extended example git email hudson jenkins changelog

git - notification - plugins jenkins io



¿Cómo incluir git changelog en los correos electrónicos de Jenkins? (4)

A partir de la versión 2.0 y posterior de Git Changelog Plugin , puede obtener el registro de cambios como una cadena en una canalización. Y luego solo usa esa variable en el correo.

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'' }

¿Hay alguna forma de importar el registro de cambios generado por Jenkins al asunto de un correo electrónico (ya sea a través del correo electrónico predeterminado o el complemento de correo electrónico ext )?

Soy nuevo en la configuración de Jenkins, por lo que me disculpo si este es un problema simple, pero no pude encontrar nada en la documentación de correo electrónico ext.


Configuré mi complemento Email-ext para usar el token CHANGES ( documentación oficial aquí ):

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

Eso imprime lo siguiente en mis notificaciones de compilación:

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

Para los mensajes HTML, coloqué el mismo código dentro de un div y agregué el formato:

<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>

Aquí hay una captura de pantalla de muestra de cómo se ve en los correos electrónicos enviados por Jenkins ahora (este compromiso particular provino de Subversion, pero funciona exactamente igual para Git y otros sistemas de control de versiones):


De la documentación original: para ver una lista de todos los tokens de correo electrónico disponibles y lo que muestran, puede hacer clic en "?" (signo de interrogación) asociado con la Referencia del token de contenido en la parte inferior de la sección de extensión de correo electrónico en la pantalla de configuración del proyecto.

Aquí está el resultado:

${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"


No en el asunto de un correo electrónico, aunque puede enviar el registro de cambios al destinatario como un archivo adjunto en un correo electrónico utilizando el plugin Git Changelog como acción de compilación posterior en Jenkins Job. Seleccione la casilla de verificación Create a file , asigne un nombre a un archivo ( CHANGELOG.md para mí), como en la imagen de abajo:

Asegúrese de haber configurado la gestión del código fuente como GIT en Jenkins JOB.

A continuación, cree una acción de compilación de Publicaciones de Email Editable y copie el nombre del archivo de registro de cambios de git como el valor de Attachments , como en la imagen de abajo: