Jenkinsによって生成された変更ログを電子メールの件名にインポートする方法はありますか(デフォルトの電子メール、または email-extプラグイン )。
私はJenkinsの設定が初めてなので、これが単純な問題である場合は謝罪しますが、email-extのドキュメントには何も見つかりませんでした。
CHANGES Tokenを使用するようにEmail-extプラグインを構成しました( official documentation here ):
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や他のバージョン管理システムでもまったく同じように機能します)。
オリジナルのドキュメントから:利用可能なすべての電子メールトークンとそれらが表示するもののリストを表示するには、「?」をクリックします。 (疑問符)プロジェクト構成画面の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"
Jenkins
Jobのビルド後アクションとして Git Changelog Plugin を使用して、変更ログをメールの添付ファイルとして受信者に送信できますが、電子メールの件名ではありません。 Create a file
チェックボックス、ファイルに名前を付けます(CHANGELOG.md
for me)、以下の画像のように:
ソースコード管理が[〜#〜] git [〜#〜]Jenkins JOBで。
次に、 編集可能な電子メール通知 ビルド後のアクションを作成し、下の画像のように、git変更ログファイルの名前をAttachments
の値としてコピーします。
Git Changelog Plugin のバージョン2.0以降では、変更ログをパイプラインの文字列として取得できます。そして、その変数をメールで使用します。
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'
}