44

Jenkins によって生成された変更ログを電子メールの件名にインポートする方法はありますか (デフォルトの電子メールまたはemail-ext プラグインのいずれかを使用)。

私は Jenkins の設定に慣れていないので、これが単純な問題であれば申し訳ありませんが、email-ext のドキュメントには何も見つかりませんでした。

4

4 に答える 4

78

CHANGES トークンを使用するように Email-ext プラグインを構成しました (公式ドキュメントはこちら)。

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 や他のバージョン管理システムでもまったく同じように機能します)。

Jenkins の変更リスト

于 2011-12-23T00:23:50.687 に答える
1

バージョン 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'
}
于 2018-04-19T18:55:18.817 に答える