用途
Quarkus Verification Loop 是一个面向 Quarkus 项目的验证流程技能,用于在提交 PR 前、重大重构或依赖升级后、以及预部署(staging 或生产)阶段执行完整的验证流水线。其核心流程为:构建 → 静态分析 → 测试与覆盖率 → 安全扫描 → 原生编译,并可扩展性能测试、健康检查、容器镜像构建、配置校验和文档审查。
主要能力
该技能按阶段组织验证步骤:
- Phase 1 构建:使用 Maven(
mvn clean verify -DskipTests)或 Gradle(./gradlew clean assemble -x test)执行构建,构建失败时停止并修复编译错误。 - Phase 2 静态分析:运行 Checkstyle、PMD、SpotBugs(
mvn checkstyle:check pmd:check spotbugs:check),可选 SonarQube。关注未使用导入或变量、高圈复杂度方法、潜在空指针解引用、SpotBugs 标记的安全问题。 - Phase 3 测试与覆盖率:运行全部测试(
mvn clean test),生成 JaCoCo 覆盖率报告(mvn jacoco:report),并强制覆盖率阈值(mvn jacoco:check,目标 80%)。测试类别包括单元测试(Mockito)、集成测试(Testcontainers +@QuarkusTest)、API 测试(REST Assured)。覆盖率目标:行覆盖 80%+,分支覆盖 70%+。 - Phase 4 安全扫描:OWASP 依赖检查(
mvn org.owasp:dependency-check-maven:check)、Quarkus 安全审计(mvn quarkus:audit)、OWASP ZAP API 扫描。常见安全检查清单包括密钥环境变量化、输入校验、认证授权、CORS、安全头、BCrypt 密码哈希、SQL 注入防护、限流。 - Phase 5 原生编译:测试 GraalVM 原生镜像兼容性(
mvn package -Dnative,或容器构建-Dquarkus.native.container-build=true),运行原生可执行文件并做基本冒烟测试。常见问题涉及反射、资源、JNI 配置。 - Phase 6 性能测试:使用 K6 进行负载测试,监控响应时间(p50/p95/p99)、吞吐量、错误率、内存和 CPU 使用。
- Phase 7 健康检查:检查 liveness、readiness、全部健康检查及指标端点(
/q/health/live、/q/health/ready、/q/health、/q/metrics)。 - Phase 8 容器镜像构建:构建容器镜像(
mvn package -Dquarkus.container-image.build=true),并使用 Trivy 或 Grype 进行容器安全扫描。 - Phase 9 配置校验:检查配置属性(
mvn quarkus:info),列出配置源,按环境校验数据库 URL、密钥外置、日志级别、CORS、限流、监控/追踪。 - Phase 10 文档审查:检查 OpenAPI/Swagger 文档、README、API 变更、迁移指南、配置属性文档。
使用方式
该技能提供分阶段命令和检查清单,可手动逐步执行,也可通过提供的自动化验证脚本(bash)串联执行。脚本依次运行构建、静态分析、测试与覆盖率、安全扫描、原生编译,并提示查看覆盖率报告、安全报告和原生可执行文件。
同时提供 GitHub Actions 集成示例,在 push 和 pull_request 时自动执行构建、测试与覆盖率、安全扫描,并上传覆盖率到 Codecov。
适用场景
- 为 Quarkus 服务提交 pull request 之前
- 重大重构或依赖升级之后
- staging 或生产环境的预部署验证
- 运行完整的构建 → lint → 测试 → 安全扫描 → 原生编译流水线
- 验证测试覆盖率是否达到阈值(80%+)
- 测试原生镜像兼容性
限制
资料未提供该技能的安装方式、收费模式、平台支持范围或具体效果数据。部分命令(如 SonarQube、OWASP ZAP、K6、Trivy、Grype)依赖外部工具或服务,需自行配置。原生编译和容器构建需要相应的 GraalVM 或容器环境。