当我创建新工作时,该工作的结果詹金斯会发送所有团队的电子邮件,但是当我们创建测试工作(我们可以通过工作名称理解它)时,我们应该仅向工作创建者发送电子邮件。 确实如此,并且有效:
pipe(..){
timeout(..){
if(env.JOB_NAME =~ /somePattern/){
BuildEmailExt email = new BuilEmailExt(this, SENDER)
}
else{
BuildEmailExt email = new BuilEmailExt(this, Emails.allTeams())
}
someCode..
}
}
然后我添加:
{{1}}
我得到异常:类:WorkFlowScript没有此类属性电子邮件 我在做什么错了?
答案 0 :(得分:1)
通过在if
和else
内定义变量,该变量在该范围之外不存在,因此在条件之外无法访问。
您可以将定义移至if之外,然后按如下所示进行设置:
pipe(..){
timeout(..){
BuildEmailExt email
if(env.JOB_NAME =~ /somePattern/){
email = new BuilEmailExt(this, SENDER)
}
else {
email = new BuilEmailExt(this, Emails.allTeams())
}
someCode..
}
}
您也可以这样做,看起来更简洁(ymmv)
pipe(..){
timeout(..){
BuildEmailExt email = new BuilEmailExt(this, (env.JOB_NAME =~ /somePattern/) ? SENDER : Emails.allTeams())
someCode..
}
}