SuperAPI AI 工具集

ci-cd-integration

部署与运维

查看项目

更新于 10-14 08:28

技能介绍

用途

该技能用于设计和搭建运行测试套件的 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、确认必需检查出现、核对制品。

使用方式

  1. 先查看 .agents/qa-project-context.md,若存在则复用其中的上下文(尤其是 team_maturity 与既有 CI 约定)。
  2. 按团队成熟度选择流水线形态:startup 使用单任务(lint + unit + 一个 E2E 冒烟);growing 拆分 unit、integration、E2E 并加入并行、制品上传、结果发布与 flaky 隔离;established 使用完整矩阵、多环境晋级门禁、性能与安全扫描、部署门禁与 SLA 流水线。
  3. 依据触发-套件映射编写 YAML,例如:推送分支跑 lint、类型检查、单元测试(上限 2 分钟);PR 增加集成与 E2E 冒烟(上限 10 分钟);合并主分支增加完整 E2E、视觉与性能预算(上限 15 分钟);夜间完整套件、安全、可访问性、flaky 隔离(上限 30 分钟);发布标签运行完整套件并对 staging 冒烟(上限 20 分钟)。
  4. 通过分支保护把 lint、unit-tests、e2e 设为必需检查。

适用场景

适用于需要在 CI 中运行单元、集成、E2E、视觉或性能测试,并希望改善反馈速度、并行效率、制品留存、flaky 治理与部署安全性的团队。

限制

  • 模板仅覆盖 GitHub Actions 与 GitLab CI;文中提到 CircleCI、Jenkins 作为平台选项,但未提供其模板。
  • 部分 actions 版本信息(如标注为 June 2026 的版本)与具体版本号属于资料既有内容,实际使用需以官方为准。
  • 关于计费、价格、平台适用范围等未提供信息。