GitHub Actions – die Grundlagen im Überblick

Die Continuous-Integration- und Continuous-Delivery-Plattform GitHub Actions ermöglicht es Ihnen, verschiedene Aktionen zu automatisieren. Das hat den Vorteil, dass Sie sich nicht länger manuell um repetitive Aufgaben kümmern müssen und mehr Zeit für Ihr eigentliches Projekt verwenden können.

Was ist GitHub Actions?

GitHub Actions ist die GitHub eigene Plattform für Continuous Integration und Continuous Delivery. Sie ermöglicht es Nutzenden, Repositories zu automatisieren und sogenannte GitHub Workflows zu erstellen. So gelingt beispielsweise das Kompilieren von neuem Code oder die Durchführung projektbezogener Unittests standardmäßig, wenn der Code im GitHub Repository aktualisiert wird.

Wie funktioniert GitHub Actions?

GitHub Actions baut auf Ihren eigenen GitHub Workflows auf. Innerhalb der Workflows können Sie auf verschiedene Events wie etwa Push Requests reagieren und in Abhängigkeit von den Events entsprechende Aktionen triggern. Der Workflow selbst besteht dabei aus verschiedenen sogenannten Jobs, die jeweils in einer eigenen virtuellen Maschine oder innerhalb eines Containers laufen. GitHub unterstützt Linux-, Windows- und macOS-VMs.

Tipp

Wenn Sie Ihre Projekte und Websites direkt deployen möchten, ist Deploy Now von IONOS die ideale Lösung. Sie können Ihre automatisierten GitHub Workflows jederzeit anpassen.

Die wichtigsten Bestandteile von GitHub Actions

Workflows

Ein GitHub Workflow ist das zentrale Element innerhalb von GitHub Actions. Mit einem Workflow, der eigentlich nichts anderes ist als eine YAML Datei, legen Sie fest, welche Aktionen ausgeführt werden sollen, wenn bestimmte Events auftreten. Doch nicht nur Events können Workflows triggern: Sie können auch manuell dafür sorgen, dass Ihr Workflow ausgeführt wird, oder sogar mittels Scheduling feste Termine einrichten.

Jeder GitHub Workflow startet also einen oder mehrere Jobs. Dabei müssen Sie sich nicht auf einen Workflow pro Repository beschränken, sondern können eine beliebige Anzahl an Workflows für Ihr GitHub Repository festlegen.

Events

Wie erwähnt, werden Workflows häufig durch sogenannte Events getriggert. Hierbei handelt es sich um eine bestimmte Aktion in Ihrem GitHub Repository, die das Ausführen eines Workflows auslöst. Ein geläufiges Beispiel für ein GitHub Event ist eine Pull Request. Es gibt allerdings unzählige Events, die Sie nutzen können. Eine vollständige Aufzählung findet sich in der GitHub-Dokumentation.

Actions

Namensgebend und zentral für GitHub Actions sind selbstverständlich die sogenannten Actions. Bei einer Action handelt es sich um eine individuelle GitHub-Applikation, die häufig ausgeführte komplexe Aufgaben ausführt. Sie können ähnlich wie Funktionen innerhalb Ihrer Workflow-Dateien genutzt werden, um repetitiven Code zu vermeiden. Wenn Sie Ihre GitHub Actions nicht selbst schreiben möchten, finden Sie eine Reihe vordefinierter Actions im GitHub Marketplace.

Steps

Bei Steps handelt es sich um einzelne Bestandteile von Jobs. Sie bestehen entweder aus Shellscripts, die ausgeführt werden, oder aber aus einer Action, die gestartet wird. Steps werden in der Reihenfolge bearbeitet, in der sie definiert werden. Außerdem bauen die verschiedenen Steps aufeinander auf und können untereinander Daten austauschen.

Jobs

Ein Job ist im Grunde nichts weiter als eine Aneinanderreihung von Steps, die auf einem sogenannten Runner ausgeführt werden. Obwohl Jobs an sich unabhängig sind, können Sie manuell Abhängigkeiten zwischen einzelnen Jobs herstellen. Das führt dazu, dass ein Job auf alle Jobs warten muss, von denen er abhängt. So wird die normale, parallele Ausführung verschiedener Jobs unterbrochen.

Runner

Ein Runner ist der Server, auf dem Ihre Workflows ausgeführt werden. Dabei kann jeder Runner genau einen Job gleichzeitig ausführen. Es handelt sich bei den Runnern also im Grunde um virtuelle Maschinen. Als Betriebssystem werden von GitHub Linux Ubuntu, Windows und macOS unterstützt. Wenn Sie ein anderes Betriebssystem benötigen, um Ihre Projekte zu testen, können Sie selbstverständlich auch eigene Runner hosten.

Vorteile von GitHub Actions

Neben der Tatsache, dass Sie GitHub Actions nahtlos in Ihre Arbeit mit GitHub integrieren können, bietet der Continuous-Integration-Dienst eine Reihe weiterer Vorteile. So können Sie sich vordefinierten Templates bedienen und müssen nicht zwingend eigene Workflows nutzen. Außerdem ist der GitHub-Dienst für Ihre öffentlichen Repositories vollkommen kostenlos. Für private Repos stellt GitHub Ihnen 2.000 Minuten pro Monat für gehostete Workflows zur Verfügung.