Jenkins によって生成された変更ログを電子メールの件名にインポートする方法はありますか (デフォルトの電子メールまたはemail-ext プラグインのいずれかを使用)。
私は Jenkins の設定に慣れていないので、これが単純な問題であれば申し訳ありませんが、email-ext のドキュメントには何も見つかりませんでした。
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;\"> — “<em>%m</em>”</div>", pathFormat="</div><div style=\"padding-left:30px;\">%p"}
</div>
これは、Jenkins から送信された電子メールで現在どのように見えるかのサンプル スクリーンショットです (この特定のコミットは Subversion からのものですが、Git や他のバージョン管理システムでもまったく同じように機能します)。
バージョン 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'
}