Desplegando a mano: Cómo organizar GitHub Actions en un monorepo
Me ha tocado un reto interesante: configurar el CI/CD para un repositorio que tiene tres servicios diferentes conviviendo juntos. El equipo quiere control total, así que nada de disparadores automáticos; el build y el deploy se lanzarán manualmente desde la interfaz de GitHub.
Para mantener el orden, voy a separar la lógica en tres archivos distintos:
- proj-a-release-workflow.yml
- proj-b-release-workflow.yml
- proj-c-release-workflow.yml
¿Cómo funcionarán?
La clave aquí es el evento workflow_dispatch. Esto nos habilita el famoso botón de "Run workflow" en GitHub, permitiéndonos elegir a demanda:
- ¿A dónde vamos? (Environment: Staging o Prod).
- ¿Qué código usamos? (La branch que queramos desplegar).
El "paso a paso" de cada despliegue
Cada vez que alguien pulse el botón, el workflow hará el trabajo sucio en tres actos:
1. Set up: Preparamos el terreno y las variables según el entorno elegido.
2. Mambo técnico: Pasamos los tests, generamos el build y mandamos el código al servidor.
3. Aviso final: Un email automático para que todo el mundo sepa que la nueva versión ya está arriba.
¡Y listo! Control total, sin sustos y cada servicio a su propio ritmo. 🚀

Comments
Post a Comment