Files
IT-Nexus/.github/workflows

GitHub Actions — Deploy Workflow

Übersicht

Der Workflow deploy.yml läuft automatisch bei jedem Push auf main.

  • Job 1 build: Installiert Dependencies und baut das Frontend — rein zum Kompilierungs-Check.
  • Job 2 deploy: Kopiert den Quellcode per SCP auf den Server und startet Docker neu. Erfordert manuellen Approval über das GitHub Environment production.

1. SSH Key als Secret hinterlegen

SSH Key generieren (falls noch kein dedizierter Key vorhanden)

ssh-keygen -t ed25519 -C "github-actions-itnexus" -f ~/.ssh/github_actions_itnexus

Den Public Key auf dem Server hinterlegen:

cat ~/.ssh/github_actions_itnexus.pub | ssh root@192.168.0.194 "cat >> ~/.ssh/authorized_keys"

Secrets in GitHub eintragen

Gehe zu: Repository → Settings → Secrets and variables → Actions → New repository secret

Secret Name Wert
SSH_PRIVATE_KEY Inhalt von ~/.ssh/github_actions_itnexus (Private Key, beginnt mit -----BEGIN OPENSSH PRIVATE KEY-----)
SERVER_IP 192.168.0.194

2. Production Environment mit Required Reviewer einrichten

Environment erstellen

  1. Gehe zu: Repository → Settings → Environments
  2. Klicke auf New environment
  3. Name: production (exakt so, wie im Workflow hinterlegt)
  4. Klicke auf Configure environment

Required Reviewers setzen

  1. Aktiviere Required reviewers
  2. Füge Simon Grüssing (GitHub-Username) als Reviewer hinzu
  3. Optional: Prevent self-review aktivieren wenn ein weiterer Reviewer vorhanden ist
  4. Speichern mit Save protection rules

3. Approval-Prozess

  1. Push auf main → Job build startet automatisch und läuft durch.
  2. Nach erfolgreichem Build: Job deploy wartet auf Approval.
  3. GitHub schickt eine E-Mail-Benachrichtigung an alle eingetragenen Reviewer.
  4. Reviewer klickt in der E-Mail oder direkt im GitHub Actions Tab auf den Workflow-Run.
  5. Unter "This workflow run is waiting for a required review"Review deployments → Haken bei production setzen → Approve and deploy.
  6. Erst dann startet der Deployment-Job.

Tipp: Den Workflow-Status siehst du unter Repository → Actions.