如何解决想要在Groovy中创建一个对象以收集Jenkins管道阶段数据
我想创建一个Jenkins管道报告,并希望通过电子邮件发送该报告。
要求:
- 该报告必须包含有关每个单独阶段的信息。
- 我想创建一个名为Report的类,该类包含一个结构,该结构具有在每个阶段添加和读取报告数据的方法。
- 为每个阶段创建一个对象,其中包含每个阶段的报告数据。报告数据可以是MAP,字符串或列表。
EX:
pipeline(postBuild: {})
{ Stage("stage1"){echo hello}
Stage("stage2"){echo from}
Stage("stage3"){echo groovy}
Stage("stage4"){echo and jenkins}
}
我所做的是创建一个班级名称Report
@Singleton(lazy=true)
@ToString(includeNames=true,includeFields=true)
class Report {
// Will be collecting stage name and summary
def stageName;
def stageReport;
def result;
//method to set value
def addStageReport(stageName,stageReport) {
this.stageName = stageName;
this.stageReport = stageReport;
result.append(stageName);
result.append(stageReport);
}
// method to get value
def readStageReport() {
return result;
}
}
我正在创建一个Report类的对象来存储每个阶段的信息
pipeline(postBuild: {sendReport(report)}) //this will create report from data in report object and email to the user
{
Stage('Check'){
echo Checking
Map stageName["Name":"check"]
Map stageReport["Result":"success"]
report.addStageReport(stageName,stageReport)
}
Stage('validate'){echo validating}
Stage('build'){echo building}
Stage("test"){echo testing}
}
```
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。