架构评审改进项: - frontend-checklist.md: 增加后端Maven编译、数据库脚本、接口兼容性检查 - cicd-gatekeeper.md: 补充Java后端构建配置(SpotBugs)、分阶段覆盖率目标 - commit-template.md: 增加数据库变更影响评估字段、精简截图要求
3.6 KiB
3.6 KiB
CI/CD构建门禁规范
🎯 规范目标
建立自动化质量门禁,确保每次代码提交都经过严格验证,防止低质量代码进入主干分支,提升系统稳定性和开发效率。
🔒 门禁层级
1. 提交前门禁(Pre-commit)
触发时机:git commit 执行前
验证内容:
- ESLint 代码规范检查
- Prettier 代码格式化
- 简单的单元测试(快速执行)
工具配置:
- Husky + lint-staged
- 配置文件:
.husky/pre-commit
2. 推送前门禁(Pre-push)
触发时机:git push 执行前
验证内容:
- 完整的单元测试套件
- 构建验证(
npm run build) - 集成测试(核心流程)
工具配置:
- Husky pre-push hook
- 配置文件:
.husky/pre-push
3. CI流水线门禁(CI Pipeline)
触发时机:代码推送到远程仓库后
验证内容:
- 完整的测试套件(单元+集成+端到端)
- 代码覆盖率检查(分阶段目标:Q1≥30%,Q2≥50%,Q3≥80%)
- 安全扫描(SAST)
- 构建产物验证
- 部署到测试环境
工具配置:
- Spug CI/CD 流水线
- Gitea Webhook 触发
4. 发布前门禁(Release Gate)
触发时机:准备发布到生产环境前
验证内容:
- 生产环境冒烟测试
- 性能基准测试
- 安全合规检查
- 回滚预案验证
⚙️ 具体配置要求
ESLint 配置
### Java 后端配置
```xml
<!-- pom.xml 关键插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>4.2.0</version>
</plugin>
数据库迁移配置
# application.yml Flyway配置
flyway:
enabled: true
locations: classpath:db/migration
baseline-on-migrate: true
javascript // .eslintrc.js 关键配置 module.exports = { plugins: ['import'], rules: { // 确保导入的模块实际存在 'import/no-unresolved': 'error', // 确保导入的成员实际存在 'import/named': 'error', // 禁止未使用的导入 'import/no-unused-modules': 'warn' } };
### Husky 配置
```bash
# .husky/pre-commit
#!/bin/sh
npm run lint-staged
# .husky/pre-push
#!/bin/sh
npm run test:unit && npm run build
lint-staged 配置
// package.json
{
"lint-staged": {
"*.{js,vue}": ["eslint --fix", "prettier --write"],
"*.{css,scss}": ["stylelint --fix", "prettier --write"]
}
}
🚫 失败处理机制
自动处理
- 构建失败:自动阻止 PR 合并
- 测试失败:标记 PR 为失败状态
- 安全漏洞:立即通知安全团队
人工处理
- 紧急修复:可申请临时绕过(需架构师批准)
- 误报处理:提交豁免申请并说明原因
- 规则调整:通过 RFC 流程申请规则变更
📊 监控与度量
关键指标
- 门禁通过率 ≥ 95%
- 平均修复时间 ≤ 2小时
- 误报率 ≤ 5%
报告机制
- 每日门禁失败统计
- 周度质量趋势报告
- 月度规则优化建议
🔄 持续改进
规则演进
- 每月评审门禁规则有效性
- 根据项目需求调整检查强度
- 引入新的质量检查工具
团队培训
- 新成员入职培训包含门禁规范
- 定期分享最佳实践案例
- 建立常见问题解决方案库
文档版本:v1.0
最后更新:2026年4月24日
负责人:陈琳(文档专家)
技术方案:诸葛亮(架构师)
适用范围:HIS 系统所有项目