问询:Heroku CI是否支持日志、测试报告等构建制品的访问?
Heroku CI构建制品:Web界面访问与邮件发送方案
我刚好处理过类似的需求,给你分享两个可行的方向——一个是实现Web界面直接获取构建制品,另一个是你考虑的邮件发送备选方案,具体细节如下:
一、Web界面直接访问的实现思路
Heroku CI本身并没有内置Web界面来查看构建制品(日志、测试报告这类),但我们可以通过自定义流程补上这个功能:
- 借助存储服务+自定义脚本:在CI构建的收尾阶段,把日志、测试报告等文件上传到一个可公开访问的存储位置(比如你可以在Heroku上部署一个简单的静态文件托管应用),然后生成对应的访问链接。你可以把这个链接通过Heroku的构建通知推送给团队,或者集成到你们的项目管理Dashboard里,这样就能通过Web直接打开查看。
- 扩展CI配置脚本:在项目的
app.json或者Heroku CI的配置文件中添加一个post-test阶段,专门处理构建制品的上传。比如用curl把打包后的文件上传到静态站点,这样每次构建完成后,团队成员就能通过固定的URL路径找到对应版本的制品。
二、备选方案:压缩后邮件发送的具体步骤
如果Web界面方案暂时需要协调资源,邮件发送确实是个快速落地的备选,我之前这么实现过:
- 打包构建制品:在CI测试完成后,用
zip命令把需要的文件打包成压缩包,用Heroku内置的HEROKU_BUILD_NUMBER环境变量命名,方便区分不同构建版本:zip -r build-artifacts-${HEROKU_BUILD_NUMBER}.zip ./test-reports ./heroku-ci.log - 配置邮件发送:可以用Heroku的邮件插件(比如SendGrid)来发送带附件的邮件,先在Heroku上安装插件并配置好API密钥,然后在CI脚本里添加发送命令:
# 先把压缩包转成base64格式,符合邮件附件要求 ARTIFACT_CONTENT=$(base64 build-artifacts-${HEROKU_BUILD_NUMBER}.zip) # 用邮件服务API发送邮件 curl -X POST https://your-email-service-api-endpoint \ -H "Authorization: Bearer $YOUR_EMAIL_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "personalizations": [{"to": [{"email": "team-alerts@yourcompany.com"}]}], "from": {"email": "heroku-ci-notifications@yourcompany.com"}, "subject": "Heroku CI Build #'$HEROKU_BUILD_NUMBER' - Artifacts Attached", "content": [{"type": "text/plain", "value": "Hi team,\nAttached are the artifacts from the latest Heroku CI build, including test reports and build logs.\nBuild URL: '$HEROKU_BUILD_URL'"}], "attachments": [{"content": "'$ARTIFACT_CONTENT'", "filename": "build-artifacts-${HEROKU_BUILD_NUMBER}.zip"}] }' - 集成到CI流程:把上述命令加到CI的
test阶段之后,确保不管构建成功还是失败,都能触发邮件发送,这样团队成员第一时间就能拿到制品。
另外要注意,Heroku CI的默认环境可能没有zip这类工具,你可以在setup阶段添加apt-get update && apt-get install -y zip来安装。
内容的提问来源于stack exchange,提问作者biddlesby
相关产品推荐
相关产品推荐

