SuperAPI AI 工具集

ci-quality-gates

测试与质量

查看项目

更新于 10-15 22:41

技能介绍

用途:为仓库建立合并前(pre-merge)的 CI 质量门禁,让新仓库默认获得完整检查,而不是逐个重新决定或跳过。范围限定在 PR 合并前的检查;发布 PR 自动化、容器构建与镜像发布、部署与 tofu apply、需要密钥的 tofu plan 与集成测试均不在范围内,交由其他技能处理。已知缺口是 Dockerfile:镜像构建不在门禁内,Dockerfile 破坏会通过所有 PR 门禁,直到合并后推送触发的构建才失败;需要时可在 PR 门禁中加一个不推送、无需凭据的 docker-build 冒烟任务。

主要能力:asdf 工具链供给与缓存;lint、格式检查、类型检查、测试;IaC 的 fmt 与 validate(无需凭据);可选的 docs build --strict。门禁集:TypeScript 用 oxlint、oxfmt --check、tsc --noEmit、bun test;Python 用 ruff check、ruff format --check、可选 mypy、pytest;IaC 用 tofu fmt -check、tofu validate -backend=false。TS 四个门禁通过固定脚本契约 lint / format / format:check / typecheck 调用,工作流只执行 bun run <name>。

使用方式:先阅读 provisioning.md 与 tool-standards.md;确认 .tool-versions 固定 CI 所需工具(如 bun、uv、python、opentofu),否则先用 asdf set 设置;将复合 action 放到 .github/actions/setup-asdf/action.yml,在 checkout 后调用;添加各语言配置与脚本;按需添加工作流并修正 paths 与 working-directory;已有仓库先单独提交一次性的格式化与 lint 修复,再提交工作流;提交 .vscode/extensions.json;开 PR 验证每个门禁运行、通过,且故意违规确实失败。模板位于 references/templates/,含 setup-asdf、lint.yml、test.yml、ui-checks.yml、tf-validate.yml、docs.yml 及 oxlint、ruff、vscode 配置。

限制与原则:CI 是唯一门禁,不使用 pre-commit 框架,直接在 CI 运行各 linter 以获得 PR 内联注解;本地反馈来自编辑器与手动运行相同命令。每种语言一个 linter 加一个 formatter,不叠加 eslint/prettier/biome/black。类型检查必须保留。门禁不得需要密钥,保持 fork 安全且启动快。.tool-versions 是工具版本唯一来源;提交锁文件并在 CI 冻结安装(如 bun install --frozen-lockfile、uv run --frozen …);工作流按路径过滤触发,pull_request.branches 不限制,push 触发限制到 develop。按工具链组织工作流、任务按门禁命名;栈技能负责各自工具选择,本技能负责供给、门禁分类与模板。数据库测试可留在本门禁,使用临时 Postgres 服务容器与显式 DATABASE_URL。