SuperAPI AI 工具集

code-quality-gate

部署与运维

查看项目

更新于 10-16 03:19

技能介绍

Code Quality Gate 是一个用于在每次部署前强制执行自动化质量检查的技能,其核心目标是通过 5 阶段质量门系统防止生产环境故障。

用途

该技能用于在代码进入生产环境之前,自动拦截类型错误、代码风格问题、测试失败、构建失败以及性能退化,从而避免生产事故。它适用于涉及生产代码的代码变更、部署请求、PR 审查以及构建失败调试等场景。

主要能力:5 个质量门

  1. Pre-Commit(本地):执行 TypeScript、Lint、Format 检查,出错则阻止提交。
  2. PR-Check(GitHub Actions):执行单元测试与构建,出错则阻止合并。
  3. Preview Deploy:生成 Vercel/Netlify 预览 URL,供视觉审查。
  4. E2E Tests:针对预览环境运行 Playwright,并进行 Lighthouse 性能审计。
  5. Production Deploy:仅当所有门全部通过后才执行生产部署。

关键规则

  • 关键:在 GitHub Actions 中绝不对 TypeScript 检查使用 continue-on-error: true。
  • Husky 安装命令:npm install -D husky lint-staged && npx husky init
  • 回滚命令:vercel rollback

使用方式示例

Pre-Commit 钩子(.husky/pre-commit): #!/bin/sh npx lint-staged npx tsc --noEmit

lint-staged.config.js: module.exports = { '.{ts,tsx}': ['eslint --fix', 'prettier --write'], '.{json,md}': ['prettier --write'], };

GitHub Actions 工作流: name: Quality Gate on: [push, pull_request]

jobs: quality: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm'

  - run: npm ci

  # Gate 1: TypeScript (NEVER skip!)
  - name: TypeScript Check
    run: npx tsc --noEmit

  # Gate 2: Linting
  - name: ESLint
    run: npm run lint

  # Gate 3: Unit Tests
  - name: Unit Tests
    run: npm run test

  # Gate 4: Build
  - name: Build
    run: npm run build

适用场景

  • 涉及生产代码的代码变更
  • 部署请求
  • PR 审查
  • 构建失败调试

实际效果

据资料,在 fabrikIQ.com 上,该质量门系统捕获了:2 个会导致运行时崩溃的 TypeScript 错误、1 个部署中缺失的环境变量、3 个在进入生产前发现性能退化的问题。

限制

资料未提供关于收费、价格、支持平台范围、具体性能指标或使用前提的更多信息,暂未提供。