pet*_*ndr 5 groovy jenkins jenkins-pipeline
当我创建新作业时,詹金斯会通过所有团队的电子邮件发送该作业的结果,但是当我们创建测试作业(我们可以通过作业名称来理解它)时,我们应该仅向作业创建者发送电子邮件。事情就是这样,而且有效:
pipe(..){
timeout(..){
BuildEmailExt email = new BuilEmailExt(this, Emails.allTeams())
someCode..
}
}
Run Code Online (Sandbox Code Playgroud)
然后我添加如果:
pipe(..){
timeout(..){
if(env.JOB_NAME =~ /somePattern/){
BuildEmailExt email = new BuilEmailExt(this, SENDER)
}
else{
BuildEmailExt email = new BuilEmailExt(this, Emails.allTeams())
}
someCode..
}
}
Run Code Online (Sandbox Code Playgroud)
我得到异常:没有类的此类属性电子邮件:WorkFlowScript 我做错了什么?
if通过在and内部定义变量else,它不存在于该范围之外,因此无法在条件之外访问。
您可以将定义移到 if 之外,然后像这样设置:
pipe(..){
timeout(..){
BuildEmailExt email
if(env.JOB_NAME =~ /somePattern/){
email = new BuilEmailExt(this, SENDER)
}
else {
email = new BuilEmailExt(this, Emails.allTeams())
}
someCode..
}
}
Run Code Online (Sandbox Code Playgroud)
你也可以这样做,这可能看起来更干净(ymmv)
pipe(..){
timeout(..){
BuildEmailExt email = new BuilEmailExt(this, (env.JOB_NAME =~ /somePattern/) ? SENDER : Emails.allTeams())
someCode..
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14749 次 |
| 最近记录: |