提问者:小点点

如何在 Jenkins 的扩展电子邮件中使用注入的环境变量?


我有一个管道,在该管道中,我通过groovy文件在构建阶段以以下方式注入环境变量:

stage('Test-Mail') {
       agent {
              label 'master'
            }
             steps {
                 load '..\\..\\EnvVars.groovy'
                 script {
                   echo bat(returnStdout: true, script: 'set')
                 }
           }
    }

当我通过echo命令打印所有环境变量时,我能够看到所有默认变量以及成功注入的变量。

但是当我尝试在扩展电子邮件正文中的后构建事件中使用它们时,我无法获取值。我也尝试在后构建中回显值,并且我能够在那里获得值。

我以以下方式尝试了扩展电子邮件:

post {
     always {
     bat ' echo BUILD_VERSION=%BUILD_VERSION%'
     emailext body: '''$PROJECT_NAME - $BUILD_DISPLAY_NAME -  ${BUILD_VERSION}  $BUILD_NUMBER - $BUILD_STATUS.
Follow the below links for details:
 Job URL: $JOB_URL
 Console Output : $BUILD_URL
                 
Regards,''', subject: 'Test Email Notification From Jenkins', to: 'vishalp@gmail.com'
                  
        }
    }

变量BUILD_VERSION是从 groovy 文件中注入的。

我尝试过:

$BUILD_VERSION

$ { BUIILD _ VERSOIN }

${env .内部版本号}

${ENV, var="BUILD_VERSION"}

但似乎没有任何效果。

我收到的邮件正文如下所示:

POCs » Mail-Notification-Pipeline - #34 -  ${BUILD_VERSION}  34 - Successful.

Follow the below links for details:
 Job URL: http://172.16.1.73:8080/job/POCs/job/Mail-Notification-Pipeline/
 Console Output : http://172.16.1.73:8080/job/POCs/job/Mail-Notification-Pipeline/34/

Regards,

我可以访问Jenkins提供的所有默认环境变量,但不能访问我注入的环境变量。詹金斯有不同类型的环境变量吗?我用错了变量吗?


共1个答案

匿名用户

尝试用双引号“”更改简单引号''。根据Groovy文档:

三重单引号字符串是普通的java.lang.String,不支持插值。