【发布时间】:2020-02-28 07:04:42
【问题描述】:
我正在尝试向当前在 Jenkins 构建过程中签出其分支的特定用户发送电子邮件通知。为此,我在环境变量中使用了命名约定。
例如
master_MAIL = abcd@gmail.comABC_MAIL = xyz@gmail.com
其中MASTER 和ABC 是实际的分支名称。
env.GIT_LOCAL_BRANCH 为我提供了当前正在签出的分支名称。
根据当前分支名称,我必须选择正确的环境变量,并将其值(邮件 ID)存储到另一个环境变量中。
pipeline {
agent any
environment {
CURRENT_MAIL = "\$${env.GIT_LOCAL_BRANCH}_MAIL"
// Here I am trying to pick the specific mail id of the branch being
// check out and store it to new environment variable named
// "CURRENT_MAIL".
// But This gives only the value "$master_MAIL" but not the value
// stored in master_MAIL environment variable.
}
stages {
}
post {
always {
mail (
from: ""
to: "$CURRENT_MAIL"
// Here I have to use that environment variable to send email to
// that specific user.
subject: "")
}
}
预期的结果是:CURRENT_MAIL 环境变量的值应该包含在{Branchname}_MAIL 环境变量中。
例如考虑我在配置中设置了这两个环境变量:
master_MAIL = abc@gmail.com
ABC_MAIL = xyz@gmail.com
那么,如果当前被检出的分支是master 分支,那么环境变量CURRENT_MAIL 的值应该是abc@gmail.com。
【问题讨论】:
-
在缩进问题的源代码时,我注意到管道块缺少一个大括号。在您的 jenkins 配置中也是如此,还是只是 Stack Overlow 的复制和粘贴错误?
标签: jenkins environment-variables jenkins-groovy