💎 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

🎯 Aufgaben & Checkliste in aufgabe.sh

💻 In Web-IDE öffnen → ← Zurück zu Bash 13 Weiter zu Bash 15 →