管道脚本中具有默认主题和正文的 Jenkins emailext 插件

Jenkins emailext plugin with default subject and body in pipeline script

我将 Jenkins 与电子邮件扩展插件和声明性管道一起使用。在 https://jenkinsserver/configure 中,我配置了我想在管道脚本中使用的“默认主题”和“默认内容”。 当我将以下代码添加到管道脚本时,一切正常。

post {
        always {
            emailext (
                to: 'my@my.dom', 
                replyTo: 'my@my.dom', 
                subject: "foo", 
                body: "bar", 
                mimeType: 'text/html'
            );
        }
    }

但我不想在管道脚本中指定一些东西,一切都应该使用全局配置中指定的数据来完成。当我删除所有内容并调用 emailext (); 时,它失败并显示主题丢失的评论。我该怎么做才能使用全局指定的默认值?

plugin documentation 中所述:

The email-ext plugin uses tokens to allow dynamic data to be inserted into recipient list, email subject line or body. A token is a string that starts with a $ (dollar sign) and is terminated by whitespace. When an email is triggered, any tokens in the subject or content fields will be replaced dynamically by the actual value that it represents.

此管道块应使用 Jenkins 配置中的默认主题和内容:

post {
        always {
            emailext (
                to: 'my@my.dom', 
                replyTo: 'my@my.dom', 
                subject: '$DEFAULT_SUBJECT',
                body: '$DEFAULT_CONTENT',
                mimeType: 'text/html'
            );
        }
    }

确保使用单引号,否则Groovy会尝试扩展变量。