GitHub Actions ist die in GitHub integrierte CI/CD- und Automatisierungsplattform. Workflows werden als YAML-Dateien im Verzeichnis .github/workflows eines Repositories definiert und reagieren auf Ereignisse (push, pull request, schedule, release, workflow dispatch und viele mehr). Jeder Workflow besteht aus Jobs, die wiederum auf Runnern laufen — entweder GitHub-Hosted Runners (Ubuntu, Windows, macOS, größere Linux-VMs, ARM64-Linux) oder Self-Hosted Runners in eigenen Netzwerken oder Clouds. Steps innerhalb eines Jobs führen Shell-Kommandos aus oder rufen wiederverwendbare "Actions" auf, die als Container, JavaScript-Pakete oder Composite-Actions verteilt werden.
Eingesetzt wird GitHub Actions für klassische CI/CD (Build, Test, Deploy), Release-Automatisierung, Dependabot- und CodeQL-Sicherheitsprüfungen, Container-Image-Builds und -Pushes, Cloud-Deployments über OIDC-Trust mit AWS, Azure, GCP, Pull-Request-Automatisierung (Labeling, Auto-Merge), Issue-Triage, Veröffentlichung von Paketen in NuGet, npm, PyPI und Container Registries sowie als Plattform für Open-Source-Projektpipelines. Reusable Workflows und Composite Actions ermöglichen die Wiederverwendung von Pipeline-Bausteinen über Repositories und Organisationen hinweg.
Der Einsatzzweck und das gelöste Problem liegen in der nahtlosen Integration von Automatisierung in den Git-zentrischen Entwickler-Workflow. Externe CI-Systeme (Jenkins, CircleCI, Travis CI) erforderten separate Konten, Webhook-Konfiguration und ein eigenes Berechtigungsmodell. GitHub Actions integriert dieselben Funktionen direkt in das Repository, mit gemeinsamem Identitäts- und Berechtigungsmodell, OIDC-Federation für tokenfreie Cloud-Authentifizierung und einem zentralen Marketplace für wiederverwendbare Bausteine.
Historisch wurde GitHub Actions auf der GitHub Universe 2018 angekündigt und im November 2019 allgemein verfügbar gemacht — zunächst nur für CI/CD, später ergänzt um Reusable Workflows (2022), Larger Runners, ARM64-Hosted-Runners (Public Beta 2024) und ein wachsendes Sicherheitsbild rund um OIDC und Provenance-Attestations. Mit Sigstore- und SLSA-Integration positioniert sich GitHub Actions seit 2023 explizit als Plattform für Software Supply Chain Security.
Eingeführt wurde GitHub Actions von GitHub und Microsoft. Frühe Versionen von GitHub Actions setzten auf einen Container-zentrischen Ansatz, bei dem jede Action zwingend in einem Docker-Container laufen sollte. Diese ursprüngliche, sehr "containerige" Variante (genannt "HCL-Actions") wurde aufgrund von Performance- und Plattform-Problemen zugunsten der heutigen YAML-basierten Workflows weitgehend zurückgenommen.
GitHub Actions stehen in direkter Konkurenz zu Azure DevOps Piplines. Bei bluehands orientieren wir uns immer an den vorhandenen Gegebenheiten und verwenden je nach Erfordernis GitHub Actions, Azure DevOps Pipelines oder GitLab.
Die Möglichkeit den Runner außerhalb von GitHub zu betreiben führt zu Interessanten Lösungen wie eine Optimierung auf Umweltauswirkungen. So kann der Zeitpunkt oder der Ort der Ausführung so optimiert werden, dass der Anteil der Erneuerbaren Energien im Stromnetz möglichst hoch ist. Mit CarbonRunner wurde so eine Lösung kommerziel angeboten, welches auch finanziell günstiger war als die Lösung von GitHub. Das Projekt wurde leider eingestellt.