用途
该技能用于设计和搭建运行测试套件的 CI/CD 流水线。它关注的是“在什么时机运行哪些测试、如何分配资源、如何保留证据、如何设置门禁”,并提供 GitHub Actions 与 GitLab CI 的模板作为参考。
主要能力
- 提供 GitHub Actions 与 GitLab CI 模板,覆盖单元、集成、E2E 等工作流。
- 支持并行与分片:矩阵分片(如
--shard=${{ matrix.shard }}/4)以及 GitLab 的parallel: 4配合CI_NODE_INDEX/CI_NODE_TOTAL。 - 制品管理:在
if: ${{ !cancelled() }}条件下上传 traces、截图、覆盖率与 HTML 报告,并合并分片报告。 - 不稳定测试处理:用
--grep @flaky与--grep-invert @flaky分成非阻塞隔离任务与阻塞任务,连续 10 次通过后可移除@flaky标签。 - 条件执行:使用
dorny/paths-filter@v3只测试发生变化的部分。 - 缓存策略:分层缓存 node modules、Playwright 浏览器、构建缓存与测试夹具。
- OIDC 免密钥部署:通过
id-token: write换取短期凭证,避免长期部署令牌。 - 失败通知:基于
if: failure()限定主分支失败时通知,示例使用slackapi/slack-github-action@v2。 - 质量门禁分级:PR Gate、Merge Gate、Deploy Gate、Nightly Gate,并给出各阶段时长与检查项。
- 验证手段:
actionlint检查工作流语法、本地 dry-run、确认必需检查出现、核对制品。
使用方式
- 先查看
.agents/qa-project-context.md,若存在则复用其中的上下文(尤其是 team_maturity 与既有 CI 约定)。 - 按团队成熟度选择流水线形态:startup 使用单任务(lint + unit + 一个 E2E 冒烟);growing 拆分 unit、integration、E2E 并加入并行、制品上传、结果发布与 flaky 隔离;established 使用完整矩阵、多环境晋级门禁、性能与安全扫描、部署门禁与 SLA 流水线。
- 依据触发-套件映射编写 YAML,例如:推送分支跑 lint、类型检查、单元测试(上限 2 分钟);PR 增加集成与 E2E 冒烟(上限 10 分钟);合并主分支增加完整 E2E、视觉与性能预算(上限 15 分钟);夜间完整套件、安全、可访问性、flaky 隔离(上限 30 分钟);发布标签运行完整套件并对 staging 冒烟(上限 20 分钟)。
- 通过分支保护把 lint、unit-tests、e2e 设为必需检查。
适用场景
适用于需要在 CI 中运行单元、集成、E2E、视觉或性能测试,并希望改善反馈速度、并行效率、制品留存、flaky 治理与部署安全性的团队。
限制
- 模板仅覆盖 GitHub Actions 与 GitLab CI;文中提到 CircleCI、Jenkins 作为平台选项,但未提供其模板。
- 部分 actions 版本信息(如标注为 June 2026 的版本)与具体版本号属于资料既有内容,实际使用需以官方为准。
- 关于计费、价格、平台适用范围等未提供信息。