2

Jenkins パイプラインemailextを使用してテンプレート ファイルを添付しようとしています。テンプレート ファイルで変数 (PROJNAME) にアクセスできず、電子メールとして例外を受信して​​います:

テンプレートのレンダリング中に例外が発生しました: そのようなプロパティはありません: クラスの env: SimpleTemplateScript21 groovy.lang.MissingPropertyException: そのようなプロパティはありません: クラスの env: SimpleTemplateScript21 at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:53) at SimpleTemplateScript21.run(SimpleTemplateScript21.groovy: 1) groovy.text.SimpleTemplateEngine$SimpleTemplate$1.writeTo(SimpleTemplateEngine.java:168) で groovy.text.SimpleTemplateEngine$SimpleTemplate$1.toString(SimpleTemplateEngine.java:180) で hudson.plugins.emailext.plugins.content.ScriptContent .renderTemplate(ScriptContent.java:151) at hudson.plugins.emailext.plugins.content.ScriptContent.evaluate(ScriptContent.java:82) org.jenkinsci.plugins.tokenmacro.DataBoundTokenMacro.evaluate(DataBoundTokenMacro.java:208) org.jenkinsci.plugins.tokenmacro.Parser.processToken(Parser. java:308) org.jenkinsci.plugins.tokenmacro.Action$KiHW1UeqOdqAwZul.run (不明なソース) で org.parboiled.matchers.ActionMatcher.match(ActionMatcher.java:96) で org.parboiled.parserunners.BasicParseRunner.match( BasicParseRunner.java:77) org.parboiled.MatcherContext.runMatcher (MatcherContext.java:351) でparboiled.matchers.ActionMatcher.match(ActionMatcher.java:96) の org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77) の org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351)parboiled.matchers.ActionMatcher.match(ActionMatcher.java:96) の org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77) の org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351)

パイプライン スクリプト:

stage('Email') {
    def mailRecipients = "myemail@abc.com"
    def jobStatus = currentBuild.currentResult
    env.PROJNAME = 'project_name'
    echo "projname is ${PROJNAME}"
emailext body: '''${SCRIPT, template="test.template"}''',
    mimeType: 'text/html',
    subject: "[Jenkins] ${jobStatus}",
    to: "${mailRecipients}"
}

テンプレート (ファイル名 - test.template):

<html>
<head>
<title>Page Title</title>
</head>
<body>
<h1>This is a Heading</h1>
<p>Job is '${env.PROJNAME}'</p>
</body>
</html>

また、テンプレート ファイルの変数構文を " ${PROJNAME} " および " ${ENV, var="PROJNAME"} "に置き換えようとしましたが、うまくいきませんでした。助言がありますか?

テンプレート ファイルでENV(var="PROJNAME")に置き換えたときは役に立ちませんでした。次のようなメールを受け取りました。

これは見出しです

ジョブは ENV(var="PROJNAME")

4

4 に答える 4