Code Quality Gate 是一个用于在每次部署前强制执行自动化质量检查的技能,其核心目标是通过 5 阶段质量门系统防止生产环境故障。
用途
该技能用于在代码进入生产环境之前,自动拦截类型错误、代码风格问题、测试失败、构建失败以及性能退化,从而避免生产事故。它适用于涉及生产代码的代码变更、部署请求、PR 审查以及构建失败调试等场景。
主要能力:5 个质量门
- Pre-Commit(本地):执行 TypeScript、Lint、Format 检查,出错则阻止提交。
- PR-Check(GitHub Actions):执行单元测试与构建,出错则阻止合并。
- Preview Deploy:生成 Vercel/Netlify 预览 URL,供视觉审查。
- E2E Tests:针对预览环境运行 Playwright,并进行 Lighthouse 性能审计。
- 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 个在进入生产前发现性能退化的问题。
限制
资料未提供关于收费、价格、支持平台范围、具体性能指标或使用前提的更多信息,暂未提供。