💎 Lehrpfad 4: Cloud DevOps, BATS & Masterprojekt

Bash 14: CI/CD Workflows & GitHub Actions

Schreibe professionelle Shell-Skripte fĂŒr CI/CD-Pipelines: Step-Outputs, Secret-Masking (Zero-Leakage), Step Summaries und Multi-OS Matrix-Support.

đŸ€– 1. GitHub Actions Workflow Commands & Files

CI/CD-Runner kommunizieren ĂŒber spezielle Dateipfade und Logging-PrĂ€fixe:

# 🎯 Step-Outputs ĂŒber $GITHUB_OUTPUT weitergeben:
echo "commit_hash=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT"

# 🔒 Secret Masking (Logs zensieren):
echo "::add-mask::$SECRET_PASSWORD"

# ⚠ Warnungen und Fehler fĂŒr das PR-Interface annotieren:
echo "::warning file=app.sh,line=12::Deprecation notice"
echo "::error file=config.json,line=5::Invalid JSON format"

🌐 2. Multi-OS Matrix-Scripting

Pipelines laufen auf Ubuntu, macOS oder Alpine Docker Containern. Robuste Skripte erkennen die Plattform dynamisch:

[Pipeline Runner: OS Check]
  â”œâ”€â”€> Ubuntu / Debian  â”€â”€â–¶ apt-get install -y <pkg>
  â”œâ”€â”€> Alpine Linux     â”€â”€â–¶ apk add --no-cache <pkg>
  â”œâ”€â”€> RedHat / Fedora  â”€â”€â–¶ dnf install -y <pkg>
  â””──> macOS (Darwin)   â”€â”€â–¶ brew install <pkg>
🎭 Didaktische Analogie: Der universelle Dolmetscher

In der Cloud weiß dein Skript nie genau, auf welcher virtuellen Maschine es landet. Ein gutes CI/CD-Skript ist wie ein Diplomat mit Weltgewandtheit: Es erkennt sofort den lokalen Dialekt (Paketmanager) und spricht die Sprache des jeweiligen Systems, ohne Fehlermeldungen zu werfen.

📑 3. Cheat-Sheet: CI/CD Shell-Kommandos

Variable / Befehl Syntax Wirkung
$GITHUB_OUTPUT echo "key=val" >> "$GITHUB_OUTPUT" Macht Variablen fĂŒr Folge-Steps verfĂŒgbar
::add-mask:: echo "::add-mask::$TOKEN" Zensiert Token in den Pipeline-Logs (***)
$GITHUB_STEP_SUMMARY cat report.md >> "$GITHUB_STEP_SUMMARY" Rendert Markdown auf der Workflow-Summary Seite
$GITHUB_ENV echo "VAR=value" >> "$GITHUB_ENV" Setzt persistente Environment-Variablen

🧠 Diagnostischer Selbst-Check

ÜberprĂŒfe dein VerstĂ€ndnis der Kernkonzepte und typischen CLI-/Git-Fallen, bevor du die Kommandos in der Praxis anwendest.

🎯 Aufgaben & Checkliste in aufgabe.sh

đŸ’» In Web-IDE öffnen → ← ZurĂŒck zu Bash 13 Weiter zu Bash 15 →