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
1.8 KiB
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
scripts/check_repo_structure.shscripts/smoke_backend_import.shscripts/smoke_contracts.pyscripts/smoke_docs.py
Verplichte CI-stappen zodra code bestaat
pytest backend/testsnpm run typechecknpm run buildalembic upgrade headpython 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.mdof nieuwere limitation doc staan. - Geen nieuwe regressies zonder vermelding in changelog.