如何在Jenkins邮件附件中拆分多值产品名字符串,正确附加对应报告
解决方案
方案1:使用通配符匹配附件(最快捷)
Jenkins邮件扩展插件的附件路径支持通配符匹配,你可以直接把附件路径配置改为:*.xlsx
如果担心匹配到工作空间内其他无关的xlsx文件,可以提前将测试报告统一存放到单独目录(例如reports/),再将附件路径配置为reports/*.xlsx,不管生成多少个产品的报告都能自动全部匹配。
方案2:拆分参数动态生成附件路径(精准匹配)
如果需要严格只匹配传入的产品对应的报告,可以通过构建步骤拆分参数生成附件列表:
- 安装Jenkins的「EnvInject Plugin」插件,支持自定义注入环境变量
- 新增构建步骤,根据系统类型执行对应脚本拆分
product_Name参数:
Linux系统Shell步骤代码:
# 拆分产品名,拼接为xlsx文件名列表 ATTACH_FILES=$(echo $product_Name | tr ' ' '\n' | awk '{print $1".xlsx"}' | tr '\n' ',') # 去除末尾多余的逗号 ATTACH_FILES=${ATTACH_FILES%,} # 写入属性文件待后续注入 echo "ATTACH_FILES=${ATTACH_FILES}" > build.env
Windows系统Batch步骤代码:
@echo off setlocal enabledelayedexpansion set ATTACH_FILES= for %%p in (%product_Name%) do ( set ATTACH_FILES=!ATTACH_FILES!%%p.xlsx, ) # 去除末尾多余的逗号 set ATTACH_FILES=%ATTACH_FILES:~0,-1% rem 写入属性文件待后续注入 echo ATTACH_FILES=%ATTACH_FILES% > build.env
- 新增「Inject environment variables」构建步骤,配置属性文件路径为
build.env - 将邮件附件配置修改为
${ATTACH_FILES}即可
方案3:调整参数类型简化处理
你可以将原product_Name参数的类型改为「Extended Choice Parameter」,设置为多选模式,返回值用逗号分隔,后续处理参数拆分时会更便捷,不需要额外处理空格分隔符。
内容的提问来源于stack exchange,提问作者sagarkamthane
相关产品推荐
相关产品推荐

