CI/CD Seed Pipeline
Objetivo
Generar, en cada ejecución de CI, un dataset de prueba (seed de BD, fixtures) sin depender de datos reales ni de un servicio con estado: una sola llamada HTTP, sin autenticación.
Seed por ejecución
Usa un identificador de la propia ejecución (GITHUB_RUN_ID) como seed: cada run tiene datos
propios, pero repetir el mismo run (reintento) da el mismo dataset.
GitHub Actions
.github/workflows/seed-e2e.yml
name: seed-e2e
on: [pull_request]
jobs:
seed:
runs-on: ubuntu-latest
steps:
- name: Generar dataset de prueba
run: |
curl -s -X POST "https://datamockseed.firstflip.es/api/v1/es/bulk" \
-H "Content-Type: application/json" \
-d '{
"seed": "run-'"$GITHUB_RUN_ID"'",
"count": 200,
"format": "sql",
"table": "clientes_test",
"createTable": true,
"fields": [
{ "name": "nombre", "type": "nombre_completo" },
{ "name": "documento", "type": "documento" },
{ "name": "email", "type": "email" },
{ "name": "iban", "type": "iban" }
]
}' > seed.sql
- name: Cargar en la BD de test
run: psql "$DATABASE_URL" -f seed.sqlPor qué bulk y no generate
POST /v1/es/bulk genera varias columnas coherentes entre sí (el email deriva del nombre, el
documento tiene su letra de control) en una sola petición, y exporta directamente a SQL, CSV o
TypeScript — sin postprocesado en el pipeline. Ver /docs/api/bulk y el límite
de tamaño en Rate limits.