如何在Jenkins任务中一次性上传3个ipa文件到diawi并将链接附在构建后可编辑邮件中
可行实现方案
以下是3种经过验证的落地方式,你可以根据自己团队的技术栈和Jenkins配置习惯选择:
方案1:Diawi API + Jenkins Pipeline 脚本实现(灵活度最高)
- 前置准备:提前把你的Diawi API token存入Jenkins凭据管理,不要硬编码在脚本中避免泄露
- 操作步骤:
- 构建阶段生成3个ipa文件后,在Pipeline中定义ipa路径数组,示例:
def ipaList = ["./build/uat.ipa", "./build/prod.ipa", "./build/beta.ipa"] - 遍历数组逐个调用Diawi上传接口,Shell、Python都可以实现调用,Shell示例逻辑:
# 遍历每个ipa上传,存储返回的URL到变量 DIAWI_URLS=() for ipa in ${ipaList[@]}; do # 调用Diawi公开上传接口,传入token、ipa文件等参数,解析返回结果得到访问URL upload_result=$(curl -s -F token=${DIAWI_TOKEN} -F file=@${ipa}) # 解析结果拿到URL后追加到数组 DIAWI_URLS+=($(echo ${upload_result} | jq -r '.url')) done- 把拿到的3个URL写入Jenkins构建环境变量,或者直接存到工作区的临时文件
diawi_urls.txt中 - 安装Jenkins邮件扩展插件,自定义邮件模板,直接引用环境变量或者读取
diawi_urls.txt的内容插入到邮件正文即可,支持自定义HTML排版区分不同ipa的用途。
- 构建阶段生成3个ipa文件后,在Pipeline中定义ipa路径数组,示例:
方案2:Jenkins Diawi 上传插件 + 可视化配置(无代码要求)
- 前置准备:在Jenkins插件市场安装Diawi上传插件,全局配置好Diawi API token
- 操作步骤:
- 在构建后操作中添加3次Diawi上传步骤,分别选择3个对应的ipa文件,配置每个上传步骤的输出URL对应不同的环境变量,比如
UAT_IPA_URL、PROD_IPA_URL、BETA_IPA_URL - 同样配置邮件扩展插件,在邮件内容的编辑框中直接引用上面配置的环境变量即可,不需要自行开发上传逻辑,适合不想维护脚本的场景。
- 在构建后操作中添加3次Diawi上传步骤,分别选择3个对应的ipa文件,配置每个上传步骤的输出URL对应不同的环境变量,比如
方案3:本地封装上传脚本 + Jenkins 集成(调试成本最低)
- 前置准备:提前在本地写好批量上传3个ipa的脚本(支持Shell、Python等任意语言),脚本可以直接在本地调试正常运行
- 操作步骤:
- Jenkins构建完成生成ipa后,直接执行本地封装好的上传脚本,传入3个ipa的路径作为参数,脚本上传完成后把3个URL按约定格式写入工作区的临时文件
- 构建后读取临时文件的内容,直接插入到通知邮件的正文中即可,这种方式的上传逻辑和Jenkins解耦,本地调试没问题的话Jenkins上基本不会出问题。
通用注意事项
- 上传时可以给每个ipa设置自定义备注,标注版本号、适用场景等信息,方便邮件收件人快速区分不同ipa的用途
- 如果ipa设置了访问密码,记得把密码也同步放到邮件中,避免收件人无法访问
- 建议添加上传异常判断逻辑,只要有一个ipa上传失败就标记构建异常,避免发送内容不全的通知邮件
内容的提问来源于stack exchange,提问作者Ramprasad
相关产品推荐
相关产品推荐

