Zum Inhalt springen

CI/CD Affected Deployments

In einem Monorepo mit 20+ Projekten ist „alles deployen” keine Option. Affected-basierte Deployments deployen nur das, was sich geändert hat — und was davon abhängt.

Terminal-Fenster
npx nx show projects --affected --withTarget=docker:build

Nx berechnet, welche Projekte seit dem letzten Deployment geändert wurden (direkt oder durch Abhängigkeiten). Nur diese werden gebaut und deployed.

Jedes deploybare Projekt hat einen Eintrag in der Matrix:

{
"project": "frontend-architekt-docs",
"stack": "frontend-architekt",
"service": "frontend-architekt-docs",
"compose": "devops/frontend-architekt/compose/docker-compose.remote.yml",
"composeProjectName": "frontend-architekt"
}

Das Deploy-Script liest die Matrix, findet betroffene Services, gruppiert nach Stack und deployed in einem docker compose up -d.

  • Schneller: Nur geänderte Images werden gebaut (~4 parallel)
  • Sicherer: Unveränderte Dienste werden nicht neu gestartet
  • Nachvollziehbar: Matrix + SHA = klares Audit-Trail
  • Affected-aware: Shared Libraries triggern alle abhängigen Projekte

Für Feature-Branches: manuelle GitLab-CI-Trigger, die das SCS gegen eine Preview-URL deployen. Auto-Stop nach 2 Tagen.