ext-email 插件,不从管道向默认收件人发送电子邮件

Gur*_*uru 2 jenkins jenkins-plugins

我正在尝试借助 ext-email 插件从 Jenkins 脚本化管道发送电子邮件。

我已经使用默认收件人配置了插件。

这是我的管道:

node {
  try {
    echo "hi"
  } catch (e) {
    currentBuild.result = "FAILED"
    notifyBuild(currentBuild.result)
    throw e
  }
  finally {
    notifyBuild(currentBuild.result)
  }
}

def notifyBuild(String buildStatus = 'STARTED') {
  buildStatus =  buildStatus ?: 'SUCCESSFUL'
  def subject = "${buildStatus}: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'"
  def summary = "${subject} (${env.BUILD_URL})"
  def details = """
  <p>STARTED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>
  <p>Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME} [${env.BUILD_NUMBER}]</a>"</p>
  """ 
  emailext (
    subject: subject,
    body: details,
    attachLog: true,
    to: ${DEFAULT_RECIPIENTS},
    recipientProviders: [[$class: 'DevelopersRecipientProvider'], [$class: 'RequesterRecipientProvider'], [$class: 'CulpritsRecipientProvider']]
  )
}
Run Code Online (Sandbox Code Playgroud)

我试图将电子邮件发送给触发作业的用户,但我没有收到发送至 DEFAULT_RECIPIENTS 的电子邮件。我也尝试过to: env.DEFAULT_RECIPIENTS

我收到此错误:

groovy.lang.MissingPropertyException: No such property: $DEFAULT_RECIPIENTS for class: groovy.lang.Binding
Run Code Online (Sandbox Code Playgroud)

Ami*_*are 6

我也有同样的问题,刚才我在这个检查下面的步骤中得到了解决方案:

emailext body: '''${SCRIPT, template="groovy-html.template"}''', 
        subject: "${env.JOB_NAME} - Build # ${env.BUILD_NUMBER} - Successful", 
        mimeType: 'text/html',to: '$DEFAULT_RECIPIENTS'
Run Code Online (Sandbox Code Playgroud)

记下周围的单个 qoutes,$DEFAULT_RECIPIENTS这是这里成功的关键。

我不知道为什么不能使用双引号 :(

  • 这就是为什么:/sf/ask/473304891/ (2认同)