Как включить git changelog в электронные письма Jenkins? - PullRequest
39 голосов
/ 15 октября 2011

Есть ли способ импортировать журнал изменений, сгенерированный Jenkins, в тему электронного письма (либо через электронную почту по умолчанию, либо через плагин email-ext )?

Я новичок в конфигурации Jenkins, поэтому я прошу прощения, если это простая проблема, но я не смог найти ничего в документации по электронной почте ext.

Ответы [ 4 ]

66 голосов
/ 23 декабря 2011

Я настроил свой плагин Email-ext для использования токена CHANGES ( официальная документация здесь ):

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

Это выводит следующее в моих уведомлениях сборки:

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

Для сообщений HTML я поместил один и тот же код в div и добавил форматирование:

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

Вот пример скриншота того, как это выглядит в электронных письмах, отправленных сейчас Jenkins (этот конкретный коммит поступил из Subversion, но он работает точно так же для Git и других систем контроля версий):

Change list for Jenkins

16 голосов
/ 28 августа 2014

Из оригинальной документации: Чтобы увидеть список всех доступных токенов электронной почты и их отображение, вы можете нажать «?»(вопросительный знак), связанный со ссылкой на токен в нижней части раздела email-ext на экране конфигурации проекта.

Вот результат:

${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"
1 голос
/ 19 апреля 2018

Начиная с версии 2.0 и выше Git Changelog Plugin , вы можете получить список изменений в виде строки в конвейере. А затем просто используйте эту переменную в почте.

node {
 deleteDir()
 sh """
 git clone git@github.com: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'
}
1 голос
/ 08 февраля 2017

Не в теме письма, хотя вы можете отправить журнал изменений получателю в виде вложения в письме, используя Плагин Git Changelog в качестве действия после постройки в Jenkins Задании.Установите флажок Create a file, укажите имя файла (CHANGELOG.md для меня), как показано на рисунке ниже:

enter image description here

Убедитесь, что вы настроили Управление исходным кодом как GIT в Jenkins JOB.

Затем создайте Редактируемое уведомление по электронной почте Действия посткомпоновки и скопируйтеимя файла журнала изменений git в качестве значения Attachments, как показано на рисунке ниже:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...