Files
geointel/docs/CI_CD_SPECIFICATION.md
T
Jens faeb58ef6d
GeoIntel release gates / Compile, test, contracts and builds (push) Successful in 1m49s
GeoIntel release gates / Python and npm vulnerability policy (push) Successful in 21s
GeoIntel release gates / Production AI image, SBOM and container scan (push) Successful in 5m39s
GeoIntel release gates / Deploy exact gated revision to Unraid (push) Failing after 58m43s
Initial public release
2026-08-31 21:56:53 +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.