如何在Jenkins email-ext插件中调用groovy模板

时间:2015-06-23 10:51:06

标签: groovy jenkins continuous-integration email-ext

我想在Jenkins的email-ext插件中使用Groovy脚本功能,但我是新手,似乎有很多假设的知识。就像一开始就调用其中一个模板一样。

对此的回答可能非常明显,但我感到有些失落,并希望被指向正确的方向。

3 个答案:

答案 0 :(得分:6)

此示例基于官方email-ext documentation,遗憾的是,它没有提供有关如何在Pipeline中使用$SCRIPT代码行的任何具体示例。如果您希望使用HTML模板作为电子邮件的正文,则需要:

  1. 创建名为my-email.template的模板文件或任何您喜欢的模板文件 - 您可以找到一些模板示例here

    <body>
      <h3>Using "build" environment variables:</h3>
      <p>
        <a href="<%= build.absoluteUrl %>"><%= build.fullDisplayName %></a>
      </p>
      <h3>List of all available "build" environment variables:</h3>
      <div>
        <% println build.properties.collect{it}.join('<br />') %>
      </div>
    </body>
    
  2. 让Jenkins管理员将my-email.template文件放在Jenkins机器上的$JENKINS_HOME\email-templates目录中 - 确保用户 jenkins 拥有此目录及其内容(即模板文件)

  3. 在管道中加载my-email.template作为正文内容:

    stage('Send email') {
        def mailRecipients = "jenkins-user@example.com"
        def jobName = currentBuild.fullDisplayName
    
        emailext body: '''${SCRIPT, template="my-email.template"}''',
        subject: "[Jenkins] ${jobName}",
        to: "${mailRecipients}",
        replyTo: "${mailRecipients}",
        recipientProviders: [[$class: 'CulpritsRecipientProvider']]
    }
    

答案 1 :(得分:1)

这是一个非常老的线程,但这是我利用内置模板执行的操作

    stage('Send Email')
    {
        steps
        {
            emailext body: '${JELLY_SCRIPT,template="html"}',recipientProviders: [[$class: 'DevelopersRecipientProvider'], [$class: 'RequesterRecipientProvider']], subject: 'Build Successful ${JOB_NAME}',mimeType: 'text/html'
        }
                
    }

插件文档指出html Jelly脚本是内置的,因此您可以轻松地使用它。

https://plugins.jenkins.io/email-ext/

答案 2 :(得分:-1)

事实上,答案显而易见,并且包含在email-ext文档中:

${SCRIPT, template="groovy-text.template"}