SuperAPI AI 工具集

test-release

测试与质量

查看项目

更新于 10-15 14:37

技能介绍

Test Release 是 Archon 项目(来源 coleam00/archon)的一个发布验证技能,用于验证已发布的 archon 二进制文件能否通过特定安装路径端到端正常工作。

用途 该技能对已发布的 archon 二进制执行自动化冒烟测试,覆盖三种安装路径:brew(macOS 上的 Homebrew tap,测试 formula 和校验和)、curl-mac(macOS 上通过 curl 执行 install.sh,沙箱化到临时目录)、curl-vps(在远程 Linux VPS 上通过 curl 执行 install.sh,测试 Linux 二进制和完整安装路径)。每条路径都会安装二进制、运行固定的冒烟测试套件并清理。开发用的 bun link 二进制不会被触碰,在整个过程中始终是 PATH 上的默认 archon。

适用场景 适用于:发布新版本、在用户环境复现 bug 报告。不适用于:尚无发布版本(应通过 bash scripts/build-binaries.sh 构建本地二进制并从 dist/binaries/ 直接运行)、测试开发克隆(应使用 bun run validate 或通过 bun packages/cli/src/cli.ts 直接调用源码)、测试完整服务器与 Web UI 部署流程(应在真实 VPS 上使用 deploy/cloud-init.yml 的 cloud-init)。

使用方式 技能接受最多三个参数:安装路径(brew | curl-mac | curl-vps)、期望版本(可选,未提供时通过 gh release list 获取)、VPS 目标(仅 curl-vps 需要,形式为 user@host 或 host)。若参数缺失,必须先向用户确认,不得猜测安装路径或期望版本。执行前需与用户确认计划。

执行流程分为多个阶段:

Phase 1 — 确定范围:解析参数,缺失时询问用户,确认计划后再继续。

Phase 2 — 预检:捕获当前开发二进制状态(which -a archon、archon version),验证所选路径的前置条件(brew --version、curl --version、ssh <target> 'uname -a'),确认 GitHub 上存在该发布(gh release view),并检测持久化的 archon-stable 安装(仅 brew 路径)。

Phase 3 — 安装:brew 路径执行 brew tap coleam00/archon 和 brew install coleam00/archon/archon;curl-mac 路径安装到专用临时目录(INSTALL_DIR=/tmp/archon-test-release-$(date +%s)),注意环境变量必须前缀 bash 而非 curl;curl-vps 路径通过 SSH 在 VPS 上运行 install.sh,并用 command -v archon 确定二进制位置。安装后立即捕获 SHA256 和版本。

Phase 4 — 冒烟测试:按顺序运行以下测试,始终使用完整二进制路径。Test 1 验证版本报告正确(退出码 0、输出含 Archon CLI v<期望版本>、Build: binary、非 unknown 的 git commit);Test 2 验证捆绑工作流加载(创建临时 git 仓库,运行 workflow list,应列出 sdlc 包工作流);Test 3 验证 SDK 路径(需 Claude Code 已安装并配置 CLAUDE_BIN_PATH 或 claudeBinaryPath,运行 archon-investigate 工作流);Test 3b 验证解析器错误路径(未配置 CLAUDE_BIN_PATH 时应报 Claude Code not found);Test 4 验证环境泄漏防护(在含假敏感键的 .env 仓库中运行,应输出 strip 行并继续执行);Test 5 验证隔离列表(isolation list);Test 6 清理测试仓库。

Phase 5 — 卸载:即使 Phase 4 失败也始终运行卸载,恢复系统到测试前状态。brew 路径执行 brew uninstall 和 brew untap,验证开发二进制仍为默认,并在测试前存在 archon-stable 时恢复它。

限制 该技能涉及安装状态变更,执行前需用户明确确认。curl-mac 路径中环境变量前缀位置错误会导致安装失败(脚本下载并验证校验和后要求 sudo 而报错)。Test 3 需要主机安装 Claude Code 并配置二进制路径。Test 4 的断言基于当前 strip 设计(防护会剥离敏感键并继续执行),而非旧的拒绝行为。具体收费、价格、平台支持范围等事实资料中暂未提供。