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

Jenkins声明式流水线后置动作添加HTML报告邮件附件失败求助

Jenkins声明式流水线邮件附件问题解决

问题根源及修正方案

你配置的邮件未收到附件,主要是以下几个错误导致:

  • attachmentsPattern格式错误:用<>包裹路径属于多余操作,Jenkins会将其识别为路径的一部分,直接导致文件查找失败。
  • 硬编码构建号与日期:路径里的28(构建号)和07-11-2022(日期)都是固定值,无法适配动态生成的构建环境,应该用变量替代。
  • 仅指定目录未匹配文件:仅写目录路径时,Jenkins无法确定要附加的具体文件,需添加文件匹配规则。
  • 绝对路径不够灵活:硬编码完整工作区路径容易因节点环境变化失效,建议用内置变量${WORKSPACE}替代固定前缀。

修正后的脚本

固定日期版本

emailext mimeType: 'text/html',
         attachmentsPattern: "${WORKSPACE}/automation-report/reports/07-11-2022/*.html", 
         body:'Check console output at $BUILD_URL to view the results. \n\n ${CHANGES} \n\n -------------------------------------------------- \n${BUILD_LOG, maxLines=100, escapeHtml=false}', 
         to: "${EMAIL_TO}", 
         subject: 'Stage Second Fails in Jenkins: $PROJECT_NAME - #$BUILD_NUMBER'

动态日期版本(适配每日生成的报告目录)

如果报告目录是按当天日期生成的,用${DATE}变量自动匹配:

emailext mimeType: 'text/html',
         attachmentsPattern: "${WORKSPACE}/automation-report/reports/${DATE, format='dd-MM-yyyy'}/*.html", 
         body:'Check console output at $BUILD_URL to view the results. \n\n ${CHANGES} \n\n -------------------------------------------------- \n${BUILD_LOG, maxLines=100, escapeHtml=false}', 
         to: "${EMAIL_TO}", 
         subject: 'Stage Second Fails in Jenkins: $PROJECT_NAME - #$BUILD_NUMBER'

额外检查点

  • 在构建步骤中添加sh 'ls -l ${WORKSPACE}/automation-report/reports/07-11-2022/',验证目标路径下是否存在HTML文件。
  • 确认Jenkins运行用户拥有该目录及文件的读取权限。
  • 检查Email Extension插件是否正常安装并完成基础配置。

内容的提问来源于stack exchange,提问作者Test Netz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 18:01:14