Files
fn_registry/dev/proposals_e2e_checks_0121/deploy_server.yaml
T
egutierrez 53a3cdbda9 chore: auto-commit (8 archivos)
- .claude/rules/registry_calls.md
- apps/dag_engine/README.md
- apps/dag_engine/app.md
- docs/capabilities/INDEX.md
- docs/capabilities/systemd.md
- docs/execution_standard.md
- dev/proposals_e2e_checks_0121/
- docs/capabilities/backends.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 00:31:30 +02:00

44 lines
2.2 KiB
YAML

# app_id: deploy_server
# lang: go (CGO, sin fts5)
# stack: net/http + go-sqlite3 (CGO) + multi-strategy deployer (systemd/systemd-remote/docker-compose)
# deteccion automatica fn-recopilador 2026-05-19, issue 0121a
#
# Notas de deteccion:
# - go.mod usa github.com/mattn/go-sqlite3 (CGO=1) pero NO usa fts5 tags
# - sin *_test.go en el directorio -> check tests OMITIDO
# - server.go confirma: --port flag con default 9090, GET /api/health handler
# - puerto e2e: 9190 (+100 sobre puerto productivo 9090)
# - operations.db presente con tablas propias (deploy_targets, deploy_logs) -> ops_audit incluido
# - BD e2e en /tmp/ para idempotencia; binario en /tmp/ para no contaminar el directorio de la app
e2e_checks:
# build: compila el binario con CGO habilitado. Sin -tags fts5 (no lo usa el modulo).
# Valida que el modulo go-sqlite3 linkea correctamente en el entorno local.
- id: build
cmd: "cd /home/lucas/fn_registry/apps/deploy_server && CGO_ENABLED=1 go build -o /tmp/deploy_server_e2e_bin ."
timeout_s: 180
# cli_help: verifica que el binario arranca y responde sin crashear ni pedir args obligatorios.
# Captura el caso de init() con side effects o missing assets.
- id: cli_help
cmd: "/tmp/deploy_server_e2e_bin help"
expect_exit: 0
expect_stdout_contains: "deploy_server"
timeout_s: 10
# migrations: arranca el servidor con la BD de prueba y lo cierra inmediatamente.
# El servidor abre la BD al arrancar y aplica migraciones automaticamente (sqlite_apply_migrations).
# Usamos --port 0 no esta soportado (flag es int sin port-0), asi que usamos puerto alto efimero.
# Tras el health check, el proceso se mata automaticamente por fn-analizador.
- id: smoke
cmd: "/tmp/deploy_server_e2e_bin serve --port 9190 --db /tmp/deploy_server_e2e.db &"
health: "http://127.0.0.1:9190/api/health"
timeout_s: 15
# ops_audit: fn-recopilador audita operations.db de la app.
# Verifica integridad referencial, schema completo, ausencia de datos corruptos.
# La BD tiene tablas propias (deploy_targets, deploy_logs) + tablas del ciclo reactivo.
- id: ops_audit
ref: "fn-recopilador:apps/deploy_server"
severity: warning