【问题标题】:Jenkins MultiJob - merging console output from child jobs into one outputJenkins MultiJob - 将子作业的控制台输出合并到一个输出中
【发布时间】:2017-11-28 22:01:01
【问题描述】:
【问题讨论】:
标签:
jenkins
jenkins-plugins
【解决方案1】:
我正在寻找类似的东西,我发现了那个帖子Jenkins hierarchical jobs and jobs status aggregation
基于此,我做了一些类似于我的 multijob,只有一个阶段的工作
import hudson.model.*
import com.tikal.jenkins.plugins.multijob.*;
void log(msg) {
manager.listener.logger.println(msg)
}
threshold = Result.SUCCESS
void aggregate_results() {
failed = false
mainJob = manager.build.getProject().getName()
job = hudson.model.Hudson.instance.getItem(mainJob)
log "---------------------------------------------------------------------------------------------------------------"
log "Aggregated status report"
log "---------------------------------------------------------------------------------------------------------------"
log("${mainJob} #${manager.build.getNumber()} - ${manager.build.getResult()}")
job.getLastBuild().getSubBuilds().each { subBuild->
subJob = subBuild.getJobName()
subJobNumber = subBuild.getBuildNumber()
job = hudson.model.Hudson.instance.getItem(subBuild.getJobName())
log "${subJob} #${subJobNumber} - ${job.getLastCompletedBuild().getResult()}"
log job.getLastCompletedBuild().getLog()
}
}
try {
aggregate_results()
} catch(Exception e) {
log("ERROR: ${e.message}")
log("ERROR: Failed Status report aggregation")
}