我在Jenkins环境变量(emailsdl)中有一个电子邮件ID列表,并试图在Jenkins Pipeline Mailer中将其用于recipients:
,如下所示:
mail (to: 'Mailer', recipients: '${env.emailsdl}',
subject: "Job '${env.JOB_NAME}' (${env.BUILD_NUMBER}) is waiting for input",
body: "Please go to ${env.BUILD_URL}.")
使用上面的代码我没有收到电子邮件并收到错误:
未发送电子邮件。没有指定任何类型的收件人('to','cc','bcc')。
但是当我用真实电子邮件(xyxyx@foo.com)替换${env.emailsdl}
时,它确实触发了一封电子邮件。我甚至试过env['emailsdl']
但它没有用。
在这种情况下,我是否可以为收件人传递环境变量?
答案 0 :(得分:1)
在groovy中,如果使用单引号字符串,则不会进行插值,这意味着字符串public function boot()
{
//your other code
Validator::extend('page_count', function($attribute, $value, $parameters, $validator) {
$page_count = Printer::find(1)->first()->value('page_count'); //replace this with your method of getting page count.
//If it depends on any extra parameter you can pass it as a parameter in the validation rule and extract it here using $parameter variable.
return $value >= $page_count;
});
//your other code
}
中的int将不会替换变量'page_count' => 'required|page_count'
。您需要使用双引号字符串:'${env.emailsdl}'
答案 1 :(得分:0)
@Gergely:您的建议帮助我解决了我的问题。问题是我有一个本地环境变量,它被赋予了来自其他全局环境变量的值:globalVar = xyxyx@foo.com
和emailsdl=${globalVar}
在作业的本地属性中。现在我在管道脚本中调用此emailsdl
。这已通过以下方式解决:
env.((env.emailsdl).replaceAll("\$", ""))