Zum Hauptinhalt springen

CI/CD

Im Hauptrepository liegen zwei GitHub-Actions-Workflows:

  • .github/workflows/docker-images.yml baut Frontend- und Backend-Images und pusht sie nach GHCR.
  • .github/workflows/deploy.yml deployed per SSH mit pull plus up -d.

Aktueller Stand im Hauptprojekt

  • Beide Workflows sind aktuell nur manuell über workflow_dispatch startbar.
  • Die Auto-Trigger auf Push nach main und der automatische Dev-Deploy sind vorerst deaktiviert.
  • stage und prod werden manuell über workflow_dispatch ausgelöst und bekommen einen konkreten Image-Tag aus einem main-Build.
  • Die Images werden als ghcr.io/<owner>/skin_to_go-frontend und ghcr.io/<owner>/skin_to_go-backend publiziert.

Deployment-Flow

Typischer Flow:

  • Direkter Dev-Deploy lokal über ./scripts/local/deploy-dev-direct.sh
  • Registry-basierte Builds erzeugen Images mit Tags wie latest und sha-abc1234
  • Für stage oder prod wird der Deploy-Workflow manuell in GitHub gestartet
  • Dabei Ziel-Environment wählen und gewünschten image_tag eintragen, zum Beispiel sha-abc1234

Manueller Stage-/Prod-Deploy in GitHub:

  1. Repository in GitHub öffnen.
  2. Actions -> Deploy.
  3. Run workflow.
  4. stage oder prod als environment wählen.
  5. Passenden image_tag aus einem erfolgreichen main-Build eintragen.

GitHub-Environment-Secrets

Für den Deploy-Workflow sollten die GitHub Environments dev, stage und prod jeweils diese Secrets enthalten:

  • SSH_HOST
  • SSH_USER
  • SSH_PRIVATE_KEY
  • SSH_PORT
  • DEPLOY_PATH

Zusätzlich braucht der Deploy-User auf dem Server:

  • einen SSH-User mit Zugriff auf den Zielpfad wie /opt/skintogo/dev
  • den öffentlichen Schlüssel des zugehörigen Private Keys in ~/.ssh/authorized_keys

Docs-CI

Dieses Docusaurus-Repo enthält:

  • build.yml für Pull-Request- und manuelle Build-Prüfung
  • deploy-cloudflare-pages.yml für Deployment auf Cloudflare Pages

Der Docs-Deploy-Workflow läuft automatisch bei jedem Push auf main im Docs-Repository und kann zusätzlich manuell per workflow_dispatch gestartet werden.

Der automatische Docs-Deploy:

  • installiert Dependencies mit npm ci
  • baut Docusaurus mit npm run build
  • veröffentlicht das Verzeichnis build über cloudflare/pages-action@v1
  • aktualisiert damit docs.skintogo.de

Für den Deploy müssen im Docs-Repository die GitHub Actions Secrets CLOUDFLARE_API_TOKEN und CLOUDFLARE_ACCOUNT_ID gepflegt sein.

Details stehen unter Docs-Deployment.