如何在 Jenkins 管道中传递字符串参数以自定义电子邮件分机?

How to pass string paramter in Jenkins pipeline to customize emailext?

我正在尝试使用 env 参数来自定义电子邮件正文。但是我做不到。

String parameter1 : NAMESPACE = abcd

詹金斯管道:

  agent{ label 'apps' }
  stages {
    stage("Checkout Sourcecode") {
                                xxxxxx
                    }
    stage('Create namespace'){
                                steps {
                                    sh """kubectl create namespace ${env.NAMESPACE}"""
                                        }
                                    }
    stage ("Clearing Workspace"){
                                steps{
                                    cleanWs()
                                }   
                            }
    }                       
    post {
    success {
        emailext body: '''Hi,
${env.NAMESPACE} is created.
Build is ${currentBuild.currentResult}              
Regards,
DT''', subject: 'Build ${BUILD_STATUS} - Build #${BUILD_NUMBER}', to: 'abc@xyz.com'
    }
}                       
}

邮件输出:

Subject: Build Success - Build #8

Hi,
${env.NAMESPACE} is created.
Build is ${currentBuild.currentResult}

Regards,
DT

预期输出正在获取 NAMESPACE 和 currentBuild.currentResult 的值。 我做错了什么?

您需要使用双引号(三重双引号)来使用字符串插值。有关更多信息,请参见此处。