Los monorepos tienen ventajas, pero su CI/CD puede ser un problema si no se optimiza.
¿La solución? Nx Affected + GitHub Actions Matrix.
🚀 ¿Qué incluye la guía completa?
- Cómo usar
nx affected
para detectar exactamente qué apps/librerías se ven afectadas por un cambio. - Configuración de GitHub Actions para ejecutar solo los jobs necesarios, evitando builds innecesarios.
- Uso de matrix strategy para paralelizar builds y despliegues por cada app afectada.
- Comparación de estrategias:
- Nx secuencial vs Nx + Matrix vs run-many manual.
🧩 ¿Cómo se ve en GitHub Actions?
- Detectas qué apps cambiaron con
nx show projects --affected
. - Usas esa lista para crear una matriz dinámica de jobs.
- Cada job construye o despliega solo su app.
jobs:
detect-affected:
runs-on: ubuntu-latest
outputs:
affected_apps: ${{ steps.set-affected.outputs.apps }}
steps:
- id: set-affected
run: echo "::set-output name=apps::$(npx nx show projects --affected --plain)"
build-and-deploy:
needs: detect-affected
strategy:
matrix:
app: ${{ fromJson(needs.detect-affected.outputs.affected_apps) }}
runs-on: ubuntu-latest
steps:
- run: echo "Building and deploying ${{ matrix.app }}"
👉 Lee la guía completa aquí:
CI/CD Selectivo en Monorepos con Nx y GitHub Actions
Incluye ejemplos, comparaciones y un repositorio de prueba.