Testing, CI & Docker
Proving a GIS workflow still works, and shipping it somewhere reproducible.
Everything on Spatial Workflow about testing, ci & docker, in the order that usually works: understand the idea, then run the task, then fix it when it goes wrong. 15 guides in total.
One learning path runs through this topic — follow it if you would rather work through a route than pick a single guide.
🧭 Start with the concepts
The ideas the how-to guides below assume you already have.
- How to Make a GIS Workflow Reproducible in Python reproducible gis workflow python
- What to Test in a GIS Pipeline (and What You Cannot) what to test gis pipeline
- Test Fixtures for GIS Code: Building Spatial Test Data You Can Trust gis test fixtures python
- Reproducible GIS Environments Explained: conda, pip, Lockfiles and Docker reproducible gis environment python
⚙️ Then do the task
Step-by-step walkthroughs with code you can copy and adapt.
- How to Containerise a Python GIS Pipeline with Docker docker python gis pipeline
- How to Test a GIS Pipeline with pytest test gis pipeline pytest
- How to Run a Python GIS Pipeline in CI with GitHub Actions github actions python gis pipeline
- How to Assert on Geometry in pytest Without Flaky Comparisons pytest assert geometry equal
- How to Test a GIS Script That Reads and Writes Files test gis file io pytest
- How to Build a Small, Fast Python GIS Docker Image small python gis docker image
🔧 When it breaks
The errors this topic produces, with the cause explained rather than just the command.
- GIS Tests Pass Locally but Fail in CI: How to Fix It gis tests fail in ci
- pytest Cannot Import My GIS Modules: How to Fix It pytest modulenotfounderror src
- Batch Job Gives Different Results Each Run: How to Fix It gis batch non deterministic output
- GDAL and GeoPandas Fail Inside Docker: How to Fix the Build geopandas gdal docker build fails
- GIS Tests Run Out of Memory or Time Out in CI: How to Fix It ci out of memory gis tests
Learning paths through this topic
A curated route rather than a list — the guides in the order that builds on itself.
Related topics
Subjects that keep coming up alongside this one, most overlap first.