groovy Jenkins电子邮件扩展插件默认模板:将用户定义的变量传入模板

koaltpgm  于 2022-11-01  发布在  Jenkins
关注(0)|答案(1)|浏览(233)

我正在尝试编辑给定的groovy模板文件,该模板文件是为emailext插件提供的,以显示Jenkins环境变量。

pipeline {
agent {
    label 'main'
}
environment {
    test = "This is a test line."
}

stages {
    stage('Debug') {
        steps {
            sh 'printenv'
            sh "echo ${env.test}"
            bat 'echo %test%'
        }
    }
}
post {
    always {
        echo "Emailing.."
        emailext body: '''${SCRIPT, template="groovy-html-edited.template"}''',
        subject: currentBuild.currentResult + " : " + env.JOB_NAME,
        to: 'example@email.com'
    }
}

}
我想要的是能够在发送到电子邮件地址的电子邮件中显示管道环境变量的值。在groovy模板中,我尝试在一个编辑过的groovy模板文件中使用以下代码:

  • ${环境测试}
  • ${环境测试}
  • ${ENV,var=“测试”}
  • ${env,var=“测试”}

在groovy-html-edited.template中,我添加的用于测试的部分是:

<!-- TEST SECTION-->
  <table class="section">
    <tr class="tr-title">
      <td class="td-title-main" colspan=2>
        TEST SECTION
      </td>
    </tr>
    <tr>
      <td>${ENV,var='test'}</td>
    </tr>
  </table>
  <br/>

在groovy模板中获取管道环境变量的正确变量名是什么?

8hhllhi2

8hhllhi21#

以下是从脚本模板中的管道获取env变量的示例:

<%
import  hudson.Util
import  hudson.Functions
import  hudson.model.Result;
import  hudson.model.Build

//get data from pipeline
def envOverrides = it.getAction("org.jenkinsci.plugins.workflow.cps.EnvActionImpl").getOverriddenEnvironment()

%>
<!-- TEST SECTION-->
<table class="section">
<tr class="tr-title">
    <td class="td-title-main" colspan=2>
    TEST SECTION
    </td>
</tr>
<tr>
    <td>${envOverrides["test"]}</td>
</tr>
</table>
<br/>

相关问题