2017-08-14 37 views
0

我喜欢将我的Jenkins电子邮件脚本提交给我的工作副本,并将其用于Email-ext。如何更改Email-ext插件以从自定义位置加载脚本

所以我写了类似:

pipeline { 
    agent any 
    stages { 
     stage('Build') { 
      steps { 
       echo 'Building...' 
      } 
     } 
    } 
    post { 
     always { 
      echo 'Sending email...' 
      emailext body: '''${SCRIPT, template="${WORKSPACE}\\Src\\Scripts\\Jenkins\\groovy-html2.template"}''', 
      mimeType: 'text/html', 
      subject: "[Leeroy Jenkins] ${currentBuild.fullDisplayName}", 
      to: "[email protected]", 
      replyTo: "[email protected]", 
      recipientProviders: [[$class: 'CulpritsRecipientProvider']] 
     } 
    } 
} 

但我得到以下邮箱: Groovy的模板文件[$ {WORKSPACE} SrcScriptsJenkinsgroovy-html2.template在$ JENKINS_HOME /电子邮件模板没有被发现。

回答

0

通过手动重写使用命令行该文件解决它:

pipeline { 
    agent any 
    stages { 
     stage('Build') { 
      steps { 
       echo 'Building...' 
      } 
     } 
    } 
    post { 
     always { 
      echo 'Sending email...' 

      bat "copy /Y ${WORKSPACE}\\Src\\Scripts\\Jenkins\\groovy-html2.template \"${JENKINS_HOME}\\email-templates\\groovy-html2.template\"" 

      emailext body: '''${SCRIPT, template="${WORKSPACE}\\Src\\Scripts\\Jenkins\\groovy-html2.template"}''', 
      mimeType: 'text/html', 
      subject: "[Leeroy Jenkins] ${currentBuild.fullDisplayName}", 
      to: "[email protected]", 
      replyTo: "[email protected]", 
      recipientProviders: [[$class: 'CulpritsRecipientProvider']] 
     } 
    } 
} 

有点粗糙,但它的工作原理。

1

出于安全原因,模板必须位于正确的目录中。如果你想把它们保存在SCM中,我建议你创建一个Jenkins作业来检查SCM到正确的目录。从技术上讲,虽然该目录不应该是可写的,但可能是。或者,您可以使用管道中的groovy代码本身

+0

确定它是出于安全原因?有一个公开的问题:[JENKINS-43903](https://issues.jenkins-ci.org/browse/JENKINS-43903) – user3360767

+0

是的,我是插件的维护者。 –

+0

我已关闭该票作为wontfix。 –

相关问题