我有一个管道,在该管道中,我通过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提供的所有默认环境变量,但不能访问我注入的环境变量。詹金斯有不同类型的环境变量吗?我用错了变量吗?
尝试用双引号“”
更改简单引号''
。根据Groovy文档:
三重单引号字符串是普通的java.lang.String,不支持插值。