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

69 lines
1.8 KiB
Markdown

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