quarkus-verification

Verification loop for Quarkus projects: build, static analysis, tests with coverage, security scans, native compilation, and diff review before release or PR.

By affaan-m · 2,787 installs

npx skills add affaan-m/ecc --skill quarkus-verification

Source repository · Upstream listing

Quarkus Verification Loop Run before PRs, after major changes, and pre deploy. When to Activate Before opening a pull request for a Quarkus service After major refactoring or dependency upgrades Pre deployment verification for staging or production Running full build → lint → test → security scan → native compilation pipeline Validating test coverage meets thresholds (80%+) Testing native image compatibility Phase 1: Build If build fails, stop and fix compilation errors. Phase 2: Static Analysis Checkstyle, PMD, SpotBugs (Maven) SonarQube (if configured) Common Issues to Address Unused imports or variables Complex methods (high cyclomatic complexity) Potential null pointer dereferences Security issues flagged by SpotBugs Phase 3: Tests + Coverage Test Categories Unit Tests Test service logic with mocked dependencies: Integration Tests Test with real database (Testcontainers): API Tests Test REST endpoints with REST Assured: Coverage Report Check target/site/jacoco/index.html for detailed coverage: Overall line coverage (target: 80%+) Branch coverage (target: 70%+) Identify uncovered critical paths Phase 4: Security Scanning Dependency Vulnerabilities (Maven) Review target/dependency check report.html for CVEs. Quarkus Security Audit OWASP ZAP (API Security Testing) Common Security Checks [ ] All secrets in environment variables (not in code) [ ] Input validation on all endpoints [ ] Authentication/authorization configured [ ] CORS properly configured [ ] Security headers set [ ] Passwords hashed with BCrypt [ ] SQL injection protection (parameterized queries) [ ] Rate limiting on public endpoints Phase 5: Native Compilation Test GraalVM native image compatibility: Native Image Troubleshooting Common issues: Reflection : Add reflection config for dynamic classes Resources : Include resources with quarkus.native.resources.includes JNI : Register JNI classes if using native libraries Example reflection config: Phase 6: Performance Testing Load Testing with K6 Run: Metrics to Monitor Response time (p50, p95, p99) Throughput (requests/sec) Error rate Memory usage CPU usage Phase 7: Health Checks Expected responses: Phase 8: Container Image Build Container Security Scan Phase 9: Configuration Validation Environment Specific Checks [ ] Database URLs configured per environment [ ] Secrets externalized (Vault, env vars) [ ] Logging levels appropriate [ ] CORS origins set correctly [ ] Rate limiting configured [ ] Monitoring/tracing enabled Phase 10: Documentation Review [ ] OpenAPI/Swagger docs up to date ( /q/swagger ui ) [ ] README has setup instructions [ ] API changes documented [ ] Migration guide for breaking changes [ ] Configuration properties documented Generate OpenAPI spec: Verification Checklist Code Quality [ ] Build passes without warnings [ ] Static analysis clean (no high/medium issues) [ ] Code follows team conventions [ ] No commented out code or TODOs in PR Testing [ ] All tests pass [ ] Code coverage ≥ 80% [ ] Integration tests with real database [ ] Security tests pass [ ] Performance within acceptable limits Security [ ] No dependency vulnerabilities [ ] Authentication/authorization tested [ ] Input validation complete [ ] Secrets not in source code [ ] Security headers configured Deployment [ ] Native compilation successful [ ] Container image builds [ ] Health checks respond correctly [ ] Configuration valid for target environment Native Image [ ] Native executable builds [ ] Native tests pass [ ] Startup time < 100ms [ ] Memory footprint acceptable Automated Verification Script CI/CD Integration GitHub Actions Example Best Practices Run verification loop before every PR Automate in CI/CD pipeline Fix issues immediately; don't accumulate debt Keep coverage above 80% Update dependencies regularly Test native compilation periodically Monitor performance trends Document breaking changes Review security scan results Validate configuration for each environment