- 1 Section
- 10 Lessons
- unbegrenzt
- CI/CD, Automatisierung & IaC10
- 1.1Was ist CI/CD?
- 1.2CI/CD-Pipeline aufbauen: Phasen und Stages
- 1.3GitHub Actions: Workflows und YAML
- 1.4GitLab CI/CD: Pipelines und Jobs
- 1.5Jenkins: Grundlagen und Jenkinsfile
- 1.6Automatisiertes Testen in der Pipeline
- 1.7Ansible: Playbooks und Inventory
- 1.8Terraform: Infrastructure as Code
- 1.9Monitoring der Pipeline
- 1.10Aufgaben CI/CD
GitHub Actions: Workflows und YAML
GitHub Actions ist heute das mit Abstand am weitesten verbreitete CI/CD-System – besonders für Open-Source-Projekte und kleinere bis mittlere Teams. Der Grund: es ist direkt in GitHub integriert, kostenlos für Public Repos und sehr einfach einzurichten. Eine YAML-Datei ins Repo und du hast eine CI-Pipeline.
Diese Lektion zeigt dir die GitHub-Actions-Syntax von Grund auf: Workflows, Jobs, Steps, Triggers, Marketplace-Actions, Secrets, Matrix-Builds. Am Ende kannst du eigene Pipelines schreiben. Die Konzepte sind oft ähnlich zu GitLab CI/CD (L4) – wer GitHub Actions kann, lernt GitLab schnell.
1) Die Grundstruktur
GitHub Actions basiert auf Workflows – YAML-Dateien im Verzeichnis .github/workflows/. Jeder Workflow ist eine eigene Pipeline. Du kannst beliebig viele Workflows in einem Repository haben, jeder mit eigenem Trigger und Zweck.
📁 .github/
📁 workflows/ ← hier kommen die YAML-Workflows hin
📄 ci.yml
📄 deploy.yml
📄 nightly-tests.yml
📁 src/
📄 package.json
📄 README.md
.github/workflows/ sein, sonst erkennt GitHub die Files nicht. Achte auf das Hidden-Folder-Punkt vorne. Die Dateiendung ist .yml oder .yaml, beides geht.2) Anatomie eines Workflows
Ein Workflow hat einen klaren Aufbau. Schau dir die Hierarchie an – klick auf eine Zeile für Erklärung:
3) Trigger-Events im Detail
GitHub Actions kennt über 30 verschiedene Trigger-Events. Hier die wichtigsten – klick die Tabs:
main oder develop. Mit paths nur wenn Dateien im src/ geändert wurden – Markdown-Änderungen ignoriert (!**.md). Auch bei Tags mit Präfix „v" (Releases).4) Marketplace: vorgefertigte Actions
Die wahre Stärke von GitHub Actions ist der Marketplace mit über 20.000 vorgefertigten Actions. Du kannst sie mit uses: einfach einbinden. Hier die wichtigsten:
@v4. Ohne Tag kann sich das Verhalten unangekündigt ändern – brüchige Pipelines drohen. Best Practice: explizite Version pinnen, gelegentlich manuell updaten.5) Komplettes Beispiel: Node.js-CI
Setzen wir alles zusammen in einem realistischen Beispiel für ein Node.js-Projekt:
Sechs Steps: Checkout, Node setup mit Cache, install, lint, test, build, artifact upload. Bei jedem PR und jedem Push auf main läuft das. Wenn ein Step rot, bricht alles ab. So einfach kann CI sein.
6) Matrix-Builds: gegen mehrere Versionen testen
Eine besonders mächtige Funktion: Matrix-Builds. Du definierst eine Liste von Versionen und der gleiche Job läuft parallel gegen alle. Klassischer Use-Case: deine Library soll mit Node 18, 20 und 22 funktionieren – pro Version eine Test-Run:
Das ergibt 3 × 3 = 9 parallele Jobs: Ubuntu+Node18, Ubuntu+Node20, Ubuntu+Node22, Windows+Node18, … Wenn einer fehlschlägt, weißt du sofort wo das Problem liegt. Sehr beliebt bei Open-Source-Libraries.
7) Secrets: Passwörter und API-Keys sicher
Pipelines brauchen oft sensible Daten – API-Keys, Passwörter, Deployment-Tokens. Diese gehören nie ins Workflow-File. Stattdessen: Secrets – verschlüsselte Variablen in den Repo-Einstellungen:
- run: aws s3 cp ... --access-key=AKIAIOSFODNN7EXAMPLENiemals Credentials direkt im YAML! Wer das Repo klont, hat deine Keys.
Settings → Secrets and variables → Actions angelegt. Sie sind schreibgeschützt – du kannst sie nie wieder im Klartext sehen, nur überschreiben. Bei Logs werden sie automatisch ausgeblendet (durch ***) – auch wenn jemand versucht sie zu echoen.8) Job-Abhängigkeiten mit needs
Standardmäßig laufen alle Jobs parallel. Mit needs: machst du Abhängigkeiten:
Hier: test läuft zuerst, dann build, dann deploy. Aber: deploy läuft nur wenn der Branch main ist. Mit if: kannst du Conditional-Execution einbauen.
9) Self-hosted Runners
GitHub stellt kostenlose Runner (ubuntu-latest, windows-latest, macos-latest), aber für mehr Kontrolle kannst du eigene Runner betreiben:
- Vorteile: viel schneller (eigene Hardware), Zugriff auf internes Netzwerk, eigene Tools vorinstalliert, günstiger bei viel Volumen
- Nachteile: Wartungsaufwand, Sicherheits-Verantwortung, eigene Hardware nötig
- Setup: Repo → Settings → Actions → Runners → New Runner. GitHub liefert ein Skript zum Installieren.
- YAML:
runs-on: self-hostedstattubuntu-latest
Für mittlere bis große Unternehmen ist self-hosted Standard. Für kleine Teams reichen die kostenlosen GitHub-Runner meist locker aus.
10) Praktische Tipps
Was du bei der Arbeit mit GitHub Actions wissen solltest:
- YAML-Validator nutzen: VS Code mit YAML-Extension warnt vor Fehlern, bevor du committest
- Workflow-Datei klein halten: bei mehr als 100 Zeilen aufteilen in mehrere Workflows oder Reusable Workflows
- Limits beachten: GitHub gibt kostenlos 2000 Minuten/Monat für Privat-Repos, mehr kostet
- Concurrency-Group:
concurrency:verhindert dass mehrere Workflow-Instanzen sich gegenseitig stören - Composite Actions: eigene wiederverwendbare Actions für komplexe Schritte
- act: Tool zum lokalen Testen von GitHub Actions vor dem Push
- Status-Badges: README mit Badge wie

Zusammenfassung
GitHub Actions ist heute der Marktführer für CI/CD bei Open Source und kleineren Teams. Workflows liegen in .github/workflows/ als YAML. Hierarchie: Workflow → Jobs → Steps. Trigger: push, pull_request, schedule, workflow_dispatch, release. Marketplace: über 20.000 vorgefertigte Actions (actions/checkout, actions/setup-node, …) – mit Versions-Tag pinnen. Matrix-Builds: gleicher Job parallel gegen mehrere OS/Versionen. Secrets: verschlüsselte Variablen in Repo-Settings, niemals im YAML hardcoden. needs: für Job-Abhängigkeiten, if: für Conditional Execution. Kostenlose Runner reichen für die meisten Projekte; self-hosted für Enterprise. Limits: 2000 Min/Monat gratis bei Private Repos. Pflichtwissen für moderne Entwicklung.
