用途
e2e-analyze 是一个用于分析端到端(e2e)测试错误的技能,属于 OpenShift HyperShift 项目。它面向需要从构建日志和测试产物中定位测试失败根因的场景。
主要能力
- 校验传入的产物目录参数是否为已存在的目录;若不存在则失败,且不会自动创建该目录。
- 从构建日志 URL 中匹配 10–20 位数字序列作为构建号({BUILD_NUMBER}),未匹配到则失败。
- 通过 curl 下载指定 URL 下的 build-log.txt,仅允许 HTTPS,拒绝 HTTP;下载时使用固定参数(含超时、重试、协议限制与文件大小上限)。
- 读取 build-log.txt 中记录的 e2e 失败信息,将指定失败项(参数 "$2")相关的产物存放到目录(参数 "$3"),以判断可能的根因。
- 使用 gcloud storage 命令按构建号在 URL 中获取指定产物。
- 要求为失败提供证据,并尝试从日志和事件中寻找补充证据。
- 清理阶段不删除已下载的产物。
使用方式
技能通过参数调用:
- 参数 "$1":构建日志基础 URL(必须是 HTTPS)。
- 参数 "$2":要分析的失败项标识。
- 参数 "$3":存放产物的已存在目录。
执行流程为:校验目录 → 提取构建号 → 下载 build-log.txt → 根据失败项定位并拉取产物 → 输出分析结果。下载命令为:curl -fsSL --max-time 20 --retry 3 --retry-connrefused --proto '=https' --max-filesize 100M "${1}/build-log.txt"。
输出格式
输出固定为四段:
- Error:错误信息
- Summary:失败分析
- Evidence:证据
- Additional evidence:补充证据
适用场景
适用于排查 OpenShift HyperShift 的 e2e 测试失败,尤其需要结合构建日志与云端(Google Cloud Storage)测试产物进行根因分析的场景。
限制
- 目录必须预先存在,技能不会创建目录。
- 仅支持 HTTPS 下载,HTTP 会被拒绝。
- 构建号依赖 URL 中的 10–20 位数字;不足或超出则无法继续。
- 产物获取依赖 gcloud storage 命令及相应的云端访问权限。
- 其他收费、平台支持范围等细节暂未提供。