Verificación post-despliegue
Estas comprobaciones son agnósticas a la feature: validan que el despliegue en sí quedó sano. La verificación funcional concreta de cada entrega está en la ficha de la feature (Catálogo de features). Usa las variables del runbook.
1. Versiones registradas en la base de datos
Deben coincidir con las versiones entregadas (ver Manifiesto).
ssh -i "$KEY" "$HOST" 'docker exec '"$DB"' sh -c '"'"'exec mariadb -uroot \
-p"$MYSQL_ROOT_PASSWORD" -N -e "SELECT plugin,value FROM mdl_config_plugins \
WHERE plugin IN (\"local_pccntr8203403_dashboard\",\"local_pccntr8203403_aitutor\", \
\"block_pccntr8203403_logros\",\"block_pccntr8203403_atencion\",\"theme_cdigital\") \
AND name=\"version\"" moodle'"'"''
2. Web Services (si la entrega tocó db/services.php)
ssh -i "$KEY" "$HOST" 'docker exec '"$DB"' sh -c '"'"'exec mariadb -uroot \
-p"$MYSQL_ROOT_PASSWORD" -N -e "SELECT name,component FROM mdl_external_functions \
WHERE component IN (\"local_pccntr8203403_dashboard\", \
\"local_pccntr8203403_aitutor\",\"theme_cdigital\")" moodle'"'"''
Confirmar que las funciones nuevas/modificadas (p. ej.
local_pccntr8203403_dashboard_get_course_teachers) aparecen en el resultado.
3. Errores PHP recientes (debe salir vacío)
ssh -i "$KEY" "$HOST" 'docker logs '"$WEB"' --tail 30 2>&1 \
| grep -iE "PHP (Fatal|Parse|Warning)|exception|error"'
4. Carga de páginas clave
Autenticarse como estudiante matriculado y comprobar que responden 200 y sin errores en la consola del navegador:
/my/(Área personal) — Welcome Hero, Stats Row, Continue Card, bloque "Cursos que necesitan atención" (si hay alertas) y widget "Usuarios en línea"./my/courses.php(Mis cursos) — cards de curso con favorito y "Profesor:"./course/view.php?id=<N>(un curso cualquiera) — banner "Tu desempeño académico", modal "Ver mi avance" y, en un curso gamificado, el Gamification Sidebar.- Drawer IA (botón flotante del tutor) — solo si la entrega incluye
local_pccntr8203403_aitutorcon el servicio externo configurado.
5. Verificación funcional específica
Seguir los pasos de la ficha de la feature desplegada en el Catálogo. Por ejemplo, para la card de curso: marcar/desmarcar favorito y confirmar que el campo "Profesor:" se rellena.
Si alguna comprobación falla, ejecutar el rollback.