Reproducir el fallo deja de ser una lotería
Los tests que fallan en la CI tienen que poder fallar en tu máquina.
En eXeLearning y en mod_exelearning, el mismo make que uso en local es el que corre la CI:
make up-local # eXeLearning: levantar el editor en local
make lint # phpcs (estándar Moodle) + estilo
make test # PHPUnit dentro del contenedor Docker
make behat # tests de aceptación
make test-js # Vitest para el JS del plugin
Notas del ponente
Mensaje: el objetivo del feedback es que sea barato y temprano. Si solo te enteras de un fallo cuando la CI se pone roja tras 10 minutos, has perdido. Con un Makefile, la CI cabe en tu terminal.
Ejemplo real: mod_exelearning corre estos mismos targets en una matriz de PHP 8.1–8.4 × Moodle 4.5→5.2 × PostgreSQL/MariaDB. Mucho, pero cada combinación es el mismo make que puedes lanzar en local.