Files
his/docs/specs/cicd-gatekeeper.md
zhugeliang d52bbda8c3 docs: 完善三份构建门禁文档 - 补充前后端协同检查、Java后端门禁、数据库变更字段
架构评审改进项:
- frontend-checklist.md: 增加后端Maven编译、数据库脚本、接口兼容性检查
- cicd-gatekeeper.md: 补充Java后端构建配置(SpotBugs)、分阶段覆盖率目标
- commit-template.md: 增加数据库变更影响评估字段、精简截图要求
2026-04-24 18:03:45 +08:00

3.6 KiB
Raw Blame History

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 系统所有项目