CI/CD para FastAPI
Una pipeline de FastAPI debe ejecutar lint, typecheck, tests, build de imagen y despliegue.
Pipeline
mermaid
flowchart LR
A["Install"] --> B["Lint"]
B --> C["Typecheck"]
C --> D["Tests"]
D --> E["Docker build"]
E --> F["Deploy"]GitHub Actions
yaml
name: fastapi-ci
on:
pull_request:
push:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: pip install -r requirements.txt
- run: pytestChecks
- Ruff/flake8.
- Mypy o pyright si aplica.
- Pytest.
- Alembic migrations check.
- Docker build.
Buenas practicas
- Tests en cada PR.
- Imagen etiquetada con SHA.
- Secrets en entorno seguro.
- Migraciones controladas.
- Smoke test tras desplegar.
