Superpowers 持续集成:3 条命令从提交到绿灯
【免费下载链接】superpowersAn agentic skills framework & software development methodology that works.项目地址: https://gitcode.com/GitHub_Trending/su/superpowers
Superpowers 是给编程智能体的技能库与开发方法论,每个技能本质是一份提示词加脚本。这篇文章讲怎么为它搭一套自动化测试配置:PR 上只跑快速技能测试套件,集成测试每晚定时跑,部署只需一条 git pull。看完即可把配置抄走使用。
一条 PR 的旅程:快两层 + 慢一层
Superpowers 持续集成的第一条原则:别在每次 PR 上跑所有东西。把测试拆成两层:
- 快速测试:无重依赖,分钟级以内,每次 push 都跑;
- 慢测试:要启动 CLI 走完整流程,10~30 分钟,只进定时任务。
项目文档 docs/testing.md 把测试分成两类:tests/验证插件代码本身是否坏了,evals/验证智能体在真实会话里是否守规矩。后者单个场景 3~30 分钟,目前不进 CI,文档建议的分级策略正是上面这种:PR 跑快速子集,夜间跑全量。
所以一条 PR 的旅程是:
- 克隆仓库
git clone https://gitcode.com/GitHub_Trending/su/superpowers,装好套件依赖; - 跑三个快速测试:
tests/claude-code/run-skill-tests.sh(需要 Claude Code CLI)、tests/opencode/run-tests.sh(默认只跑插件加载、启动缓存两个无外部依赖的项)、brainstorm-server 的npm test; - 全绿可合并。三个套件退出码约定一致:0 全过、1 有失败,结尾打印 Passed/Failed/Skipped 统计,CI 层直接执行脚本即可,不用额外解析。
./tests/claude-code/run-skill-tests.sh ./tests/opencode/run-tests.sh cd tests/brainstorm-server && npm test集成测试默认被隐藏,要加--integration才会跑,耗时 10~30 分钟,留给夜间层。
挑 2 个参数跑测试
参数不用全记,记住这两个就够:
--test NAME:只跑指定的测试文件,改动后定点复测;--timeout SECONDS:单个测试的超时预算,默认 900 秒,超时后 runner 判超时(底层退出码 124)。
./tests/claude-code/run-skill-tests.sh --test test-sdd-workspace.sh --verbose--verbose会把完整过程日志打出来,而不是只给结尾结果,排障时必开。剩下两个参数忘了就--help,不用翻源码。
GitHub Actions 或 GitLab CI 怎么选
两个测试脚本对平台零依赖,只要求 bash、node 和对应 CLI,所以配置差异只在触发方式和 runner 上。
GitHub Actions 方案:push/PR 触发快测。
on: [push, pull_request] jobs: fast: runs-on: ubuntu-latest夜间慢测放独立 workflow,只多一个 schedule:
schedule: - cron: "0 3 * * *"然后在其中跑两个套件并加--integration。
GitLab CI 等价做法:rules匹配 push 与 merge_request 跑快测,pipeline: schedule标记夜间流水线,届时才加--integration。
取舍很简单:仓库本来在 GitHub 就用 Actions,自建 GitLab 就用 GitLab CI。无论选哪个,守住一点:慢层不阻塞 PR。另外建议把 CLI 版本在作业里固定下来,避免 runner 镜像随时间漂移导致"本地过、CI 挂"。
超时、环境漂移与失败定位
⚠️ CI 变红,绝大多数落在下面三类里。
集成测试卡超时:10~30 分钟是正常时长,不是卡死。CI 平台默认作业超时往往只有 30~60 分钟,给慢作业留 45 分钟以上余量,或者用--timeout调低单测预算。claude-code 套件的默认 900 秒预算,正是按它最慢测试文件"9 个提示词 × 每个 90 秒"的最坏情况留的。
环境漂移:快测套件不挑环境,但 claude-code 套件要求装好 Claude Code CLI,opencode 的--integration要求装 OpenCode。CI 里第一行报错是"找不到 CLI"时,先补环境,别去改测试。
失败定位:先--verbose判断是超时(退出码 124)还是断言失败;行为层面不对,照 skills/systematic-debugging/SKILL.md 的步骤回溯根因,别靠猜。
可执行清单
逐条打勾,CI/CD 部署流程即算搭完:
- CI 环境已装 Claude Code CLI;要跑 opencode 慢测的,再装 OpenCode
- PR 流水线只跑三个快速测试,不带
--integration - 慢测试由 schedule 每晚触发,作业超时 ≥45 分钟
- 会用
--test定点复现、--verbose排障 - 部署:opencode 插件以软链指向仓库,在插件安装目录
git pull拉新版,再跑tests/opencode/test-plugin-loading.sh验证加载
【免费下载链接】superpowersAn agentic skills framework & software development methodology that works.项目地址: https://gitcode.com/GitHub_Trending/su/superpowers
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考