Files
geointel/docs/CI_CD_SPECIFICATION.md
T
Codex 6ea3586a3e
GeoIntel CI / docs-smoke (push) Has been cancelled
GeoIntel CI / contract-smoke (push) Has been cancelled
Initial GeoIntel V1 foundation
2026-06-16 23:36:32 +02:00

1.8 KiB

CI/CD Specification

Doel

De CI/CD-pipeline moet elke wijziging snel valideren zonder zware AI- of GIS-jobs verplicht te maken. Zware checks krijgen aparte profielen.

Checkprofielen

quick

Moet lokaal binnen enkele minuten kunnen draaien.

  • Backend import check.
  • Python lint/type smoke.
  • Frontend install/build smoke.
  • API schema consistency check.
  • Geen ontbrekende verplichte documentatie.

integration

Draait met Docker Compose.

  • PostgreSQL/PostGIS start.
  • Redis start.
  • Backend start.
  • Health endpoint geeft OK.
  • Alembic migrations kunnen naar laatste versie.
  • Test fixtures kunnen worden ingeladen.

geospatial

Draait alleen wanneer GDAL/Rasterio/GeoPandas beschikbaar zijn.

  • Raster metadata fixture.
  • Vector fixture import.
  • CRS-transformatie fixture.
  • Clip operatie fixture.

ai-light

Draait zonder groot model.

  • Model registry laadt.
  • Detection pipeline accepteert dummy model adapter.
  • Outputcontract voor detections klopt.
  • GeoJSON exportcontract klopt.

ai-full

Optioneel en niet verplicht voor elke commit.

  • YOLO/SAM echte modelrun op kleine fixture.
  • Output wordt geprojecteerd naar kaartcoördinaten.
  • QA/QC tegen referentievector draait.

Verplichte CI-stappen voor M1-builds

  1. scripts/check_repo_structure.sh
  2. scripts/smoke_backend_import.sh
  3. scripts/smoke_contracts.py
  4. scripts/smoke_docs.py

Verplichte CI-stappen zodra code bestaat

  1. pytest backend/tests
  2. npm run typecheck
  3. npm run build
  4. alembic upgrade head
  5. python scripts/validate_fixtures.py

Build failure policy

Een build mag alleen als groen worden beschouwd wanneer:

  • Alle quick checks slagen.
  • Bekende failures expliciet in docs/KNOWN_LIMITATIONS_M3.md of nieuwere limitation doc staan.
  • Geen nieuwe regressies zonder vermelding in changelog.