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?

  1. Detectas qué apps cambiaron con nx show projects --affected.
  2. Usas esa lista para crear una matriz dinámica de jobs.
  3. 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.