Un Makefile, todas las máquinas
make está en todos los sistemas (multiplataforma; da algo de trabajo, pero compensa).
- Una única interfaz para el proyecto: no memorizas comandos largos, ejecutas verbos.
- Lo que corro en local = lo que corre la CI. El mismo
make testen mi portátil y en GitHub Actions. - Autodocumentado:
make helplista lo que se puede hacer.
Ejemplo real (este repo de charlas)
make install # dependencias
make validate # comprobar metadatos de cada charla
make build # validate + generar el sitio estático
make serve # http://localhost:8080
make exe # (local) regenerar la unidad eXeLearning
Esta misma presentación se construye con estos targets.
Notas del ponente
Idea ancla de la sección: el Makefile es el contrato. Reduce la distancia entre "funciona en mi máquina" y "funciona en la CI" a cero, porque ejecutan literalmente lo mismo.
Demo posible: make help en este repo, y luego enseña que el workflow de GitHub Actions llama a make validate y make build — los mismos verbos.