You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ci: self-hosted runner for hardware-in-the-loop tests (Phase 2) #11
La fase 1 de CI (#10) cubre la compilación en GitHub Actions (runners cloud). Esta issue plantea la fase 2: tests reales sobre hardware ESP32 con un runner local.
Objetivo
Ejecutar un smoke test automático sobre el proxy de test (192.168.254.213) + emulador EMMA (192.168.254.212) en cada PR, sin intervención manual.
Arquitectura propuesta
GitHub PR → GitHub Actions → self-hosted runner (máquina local)
│
├─ Compila firmware
├─ Flashea por OTA al proxy de test (.213)
├─ Espera arranque (~15s)
└─ Smoke test HTTP contra /api/status
Tareas
Instalar y registrar el GitHub Actions self-hosted runner en la máquina local
Añadir job hardware-test en build.yml que dependa del job de compilación
Crear scripts/smoke_test.py que valide:
backend_state == WAITING o CONNECTED
device_model != vacío
Las tres páginas web (/, /log, /config) devuelven HTTP 200
El cambio de idioma desde /config persiste tras el POST
Flash OTA al proxy de test desde el runner (requiere secrets.ini con test_ip disponible en el runner, fuera del repo)
Añadir label hardware al job para que solo corra en el runner local, no en runners cloud
Consideraciones
El runner necesita acceso de red a 192.168.254.x
secrets.ini y secrets.h se inyectan como variables de entorno del runner (no en el repo)
El ESP32 de test queda dedicado a CI — no usarlo para pruebas manuales mientras corre el pipeline
Activity