我正在尝试向特定用户发送电子邮件通知,该用户的分支当前在Jenkins构建过程中已签出。为此,我在环境变量中使用了命名约定。
例如
add
master_MAIL = abcd@gmail.com
ABC_MAIL = xyz@gmail.com
和MASTER
是实际的分支名称。
ABC
为我提供了当前分支名称已签出的功能。
基于当前分支名称,我必须选择正确的环境变量,并将其值(邮件ID)存储到另一个环境变量。
env.GIT_LOCAL_BRANCH
预期结果是: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
。
答案 0 :(得分:0)
您需要使用groovy evaluate()
helper method来动态评估groovy表达式。
environment {
CURRENT_MAIL = evaluate(env.GIT_LOCAL_BRANCH + '_MAIL')
// OR using Groovy GStrings as
// CURRENT_MAIL = evaluate("${env.GIT_LOCAL_BRANCH}_MAIL")
}