# 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.