Перейти к основному содержимому

CI Quality Gates

Назначение

Документ задает обязательные проверки, которые защищают архитектуру, безопасность, финансы, контракты и документацию от случайной деградации.

Базовый Pipeline

GateЧто Проверяет
Format/LintC# formatting, TypeScript lint, markdown style для docs.
BuildВсе измененные projects и зависимые shared packages.
Unit TestsDomain invariants, application decisions, validators.
Architecture TestsLayer dependencies, service import boundaries, naming conventions.
Contract TestsOpenAPI/event compatibility, generated clients.
Integration TestsTestcontainers для PostgreSQL/Kafka/Redis и critical flows.
Security Checksdependency vulnerabilities, secret scanning, auth policy coverage.
Documentation Checksссылки, наличие docs для API/events/entities.
Migration Checksdry run migrations, destructive migration detection.

Gate Ownership

GateOwnerBlocking
Format/LintEngineeringДа.
Architecture TestsArchitecture/PlatformДа.
Contract TestsService owner + frontend ownerДа для public/admin/partner API.
Security ChecksSecurity ownerДа для high/critical.
Migration ChecksService owner + DBA/platformДа для production-bound changes.
Documentation ChecksAuthor + reviewerДа для changed public behavior.
Critical Domain TestsDomain ownerДа для money/identity/provider flows.

Change-Type Matrix

Change TypeRequired Gates
API endpointAPI doc, OpenAPI diff, generated client check, permission catalog.
Kafka eventEvent schema compatibility, event catalog, consumer impact check.
DB migrationMigration dry run, destructive detector, rollback/forward-fix note.
Permission/policyPermission catalog, policy tests, audit tests.
Financial flowUnit + integration + idempotency + reconciliation tests.
Provider adapterSandbox/simulator tests, timeout/retry policy, callback security tests.
Report/exportExport registry, PII classification, audit and expiration tests.
Shared packageAffected service build/tests, ADR if runtime behavior changes.

Blocking Rules

Merge блокируется, если:

  • service импортирует другой service напрямую;
  • API endpoint не имеет документации;
  • event contract изменен без compatibility note;
  • permission scope отсутствует в catalog;
  • tenant-scoped query не проходит architecture/scope tests;
  • migration содержит destructive operation без approval;
  • generated OpenAPI client устарел;
  • docs links в измененных файлах сломаны.

Required Artifacts

CI должен публиковать artifacts:

  • test results;
  • coverage summary;
  • architecture test report;
  • OpenAPI diff;
  • event schema diff;
  • migration dry run report;
  • generated client package or checksum;
  • docs link check report;
  • dependency/security scan report.

Critical Domain Gates

Для Accounting, Payments, Execution Gateway, Incentive, Identity, KYC и Partner Payout дополнительно требуются:

  • integration tests с Testcontainers;
  • idempotency/retry tests;
  • audit/assertion tests для high-impact operations;
  • negative cases для authorization и tenant isolation;
  • reconciliation/evidence notes для risky change.

Documentation Coverage Gate

Для каждого нового/измененного элемента проверяется наличие:

  • API method doc для HTTP endpoint;
  • event doc для Kafka contract;
  • entity/doc/fact doc для persisted model;
  • ADR для architecture-level deviation;
  • permission catalog entry для protected method;
  • runbook для new critical alert.

Release Gate

Перед production release собирается release package:

  • OpenAPI artifacts;
  • event schema artifacts;
  • migration list;
  • changed permissions;
  • feature flags;
  • runbook links;
  • rollback notes;
  • operational evidence package checklist.

Manual Approval Rules

Manual approval обязателен для:

  • destructive migration;
  • permission model change;
  • payment/game provider credential or callback change;
  • financial ledger/posting logic;
  • KYC/AML decision logic;
  • public API breaking change;
  • feature flag that changes money/security behavior.

Approval фиксируется в release notes или Operational Evidence Package.

CI Failure Triage

FailureПервое Действие
Architecture testИсправить dependency direction или обновить ADR/rule.
OpenAPI diff breakingВернуть compatibility или поднять API version.
Event diff breakingДобавить versioned event или migration plan.
Migration dry runИсправить migration или добавить approved plan.
Docs link checkИсправить ссылку/индекс до merge.
Security scanОбновить dependency или оформить risk acceptance.

Обратные ссылки

Автоссылки: где используется этот документ.