You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Jenkins每日任务执行汇总表以表格格式自动发送至指定邮箱

实现方案及可使用插件说明

一、推荐插件组合

以下两个都是Jenkins官方维护的稳定插件,搭配即可满足需求:

  • Email Extension Plugin:扩展Jenkins邮件发送能力,支持自定义邮件内容模板,可嵌入动态脚本拉取任务状态
  • Groovy Plugin:支持在Jenkins任务中执行Groovy脚本,用来批量拉取指定任务的执行状态

二、具体实现步骤

步骤1:新建汇总监控定时任务

新建一个自由风格的Jenkins任务,设置定时触发规则为每天凌晨所有夜跑任务结束后的时间,比如所有任务预计3点跑完,就设为0 3 * * *,确保拉取的是前一晚完整的执行结果。

步骤2:添加Groovy脚本构建步骤

在构建步骤中选择「Execute Groovy script」,填入以下逻辑的脚本,可根据实际情况修改任务列表、时间范围参数:

import jenkins.model.Jenkins
import hudson.model.Result

// 替换为你需要监控的10个任务的准确名称
def monitorJobs = ["job1", "job2", "job3", "job4", "job5", "job6", "job7", "job8", "job9", "job10"]
// 时间范围默认取近24小时内的构建,可根据夜跑窗口调整
def timeRange = 24 * 60 * 60 * 1000
def now = System.currentTimeMillis()
def resultTable = []

monitorJobs.each { jobName ->
    def job = Jenkins.instance.getItemByFullName(jobName)
    if (!job) {
        resultTable << [jobName, "任务不存在", "-", "-"]
        return
    }
    def lastBuild = job.getLastBuild()
    if (!lastBuild || (now - lastBuild.getTimeInMillis()) > timeRange) {
        resultTable << [jobName, "近24小时无执行记录", "-", "-"]
        return
    }
    def status = lastBuild.getResult().toString()
    def buildUrl = lastBuild.getAbsoluteUrl()
    def duration = lastBuild.getDurationString()
    resultTable << [jobName, status, duration, buildUrl]
}

// 将结果存入构建环境变量,供后续通知步骤调用
def build = Thread.currentThread().executable
build.addAction(new hudson.model.ParametersAction([
    new hudson.model.StringParameterValue("JOB_STATUS_TABLE", new groovy.json.JsonBuilder(resultTable).toPrettyString())
]))

步骤3:配置通知规则

在构建后操作中选择「Editable Email Notification」,按需求配置:

  • 收件人列表填入所有干系人的邮箱地址
  • 邮件主题自定义为类似「${BUILD_DATE} 夜跑任务执行状态汇总」
  • 邮件内容选择HTML格式,用模板解析刚才存储的JOB_STATUS_TABLE变量渲染为表格,可给执行失败的任务行添加红色高亮方便识别。
    如果需要对接企业微信、钉钉等内部办公工具,把邮件发送步骤替换为对应平台的机器人通知插件即可,同样可以传入表格内容发送。

步骤4:测试验证

手动触发一次该汇总任务,确认是否能正常拉取所有指定任务的状态、通知是否正常发送、表格格式是否符合预期。

三、轻量替代方案

如果不想写Groovy脚本,也可以用Build Monitor View Plugin先创建一个包含10个指定任务的监控视图,再搭配Screen Capture Plugin定时截图发送,该方案灵活性较低,适合不需要结构化表格数据的场景。

内容的提问来源于stack exchange,提问作者Venkatesha K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 05:54:02