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

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