2.2 KiB
2.2 KiB
CI/CD中的质量门禁
概述
质量门禁不仅在本地的Git hooks中运行,也在CI/CD流水线中执行,确保所有合并到主分支的代码都符合质量标准。
Woodpecker CI配置
质量检查步骤
在 .woodpecker.yml 中添加质量检查步骤:
pipeline:
quality-check:
image: node:18-alpine
environment:
NODE_ENV: test
commands:
- npm ci
- npm run lint
- npm run type-check
- npm run test:coverage
when:
event:
- push
- pull_request
coverage-report:
image: node:18-alpine
environment:
NODE_ENV: test
commands:
- npm ci
- npm run test:coverage
# 上传覆盖率报告到Codecov或其他服务
secrets: [codecov_token]
when:
event:
- pull_request
质量门禁规则
CI/CD中的质量门禁规则:
- 代码检查: ESLint必须通过,无错误
- 类型检查: TypeScript编译必须成功
- 测试通过: 所有测试必须通过
- 覆盖率达标: 代码覆盖率必须≥70%
失败处理
如果质量检查失败:
- CI/CD流水线失败
- 阻止合并到主分支
- 发送通知给开发者
- 显示详细的错误信息
本地开发 vs CI/CD
本地开发
- 优点: 快速反馈,立即发现问题
- 缺点: 可能被绕过(--no-verify)
CI/CD
- 优点: 强制执行,无法绕过
- 缺点: 反馈延迟,需要等待CI运行
最佳实践
- 本地优先: 在本地运行质量检查,确保通过后再推送
- CI兜底: CI/CD作为最后一道防线,确保质量
- 快速反馈: CI/CD配置为快速失败,尽早发现问题
持续改进
监控质量指标
定期监控以下指标:
- 代码覆盖率趋势
- ESLint错误数量
- TypeScript错误数量
- 测试失败率
- CI/CD通过率
优化质量门禁
根据监控数据优化质量门禁:
- 调整覆盖率阈值
- 添加新的质量检查
- 优化检查性能
- 改进错误提示