GitHub Workflows – so arbeiten Sie mit dem praktischen GitHub-Feature
GitHub Workflows erweitern die Funktionalität von GitHub und werden im Ordner .github/workflows direkt im gewünschten Repository erstellt. Sie ermöglichen es Ihnen, automatisierte Aktionen auszuführen, wenn bestimmte Events auftreten.
Was sind GitHub Workflows?
Im Grunde genommen ist ein GitHub Workflow nichts anderes als eine Sammlung von bestimmten, meist wiederkehrenden Aktionen, die automatisch ausgeführt werden, wenn ein bestimmtes Ereignis im Repository auftritt. Er besteht aus mehreren sogenannten Jobs, die wiederum in einzelne Schritte bzw. Steps aufgeteilt sind. Neben dem eventbasierten Einsatz von Workflows können sie auch manuell gestartet oder innerhalb bestimmter Zeitintervalle ausgeführt werden. Die Workflows sind ein wesentlicher Bestandteil der Continuous-Integration-Plattform GitHub Actions.
Welche Aktionen der GitHub Workflow im Einzelnen umfasst, liegt dabei ganz in der Hand der Programmierenden. Häufige Einsatzgebiete sind das automatisierte Testen von Code, sobald dieser im Repository aktualisiert wurde, oder das Benachrichtigen von Team-Mitgliedern, sobald Änderungen im Repository auftreten.
Welche Aktionen der GitHub Workflow im Einzelnen umfasst, liegt dabei ganz in der Hand der Programmierenden. Häufige Einsatzgebiete sind das automatisierte Testen von Code, sobald dieser im Repository aktualisiert wurde, oder das Benachrichtigen von Team-Mitgliedern, sobald Änderungen im Repository auftreten.
Wenn Sie GitHub für Ihr Webprojekt nutzen, lohnt sich die Nutzung von IONOS Deploy Now, um Ihre Produktivität zu steigern. Der bereits eingerichtete GitHub Actions Workflow sorgt automatisch für das Builden Ihres Projekts.
Schritt für Schritt zum eigenen Workflow
Einen GitHub Workflow zu erstellen, ist nicht schwer. Sie benötigen lediglich Grundkenntnisse in der Programmiersprache YAML und ein GitHub Repository, in dem Sie Ihren Workflow ausführen und bereitstellen möchten. Wenn Sie eine integrierte Entwicklungsumgebung nutzen, um Ihren YAML-Code zu schreiben, kann Ihnen der GitHub Copilot sogar bei der Erstellung des Workflow-Codes behilflich sein.
Schritt 1: Workflow aufsetzen
Nachdem Sie ein Repository angelegt haben oder ein bereits bestehendes Repository für Ihren GitHub Workflow ausgewählt haben, gelangen Sie mit einem Klick auf den Button Actions in das GitHub-Actions-Menü.
Im GitHub-Actions-Menü können Sie nun Ihren eigenen Workflow erstellen. Klicken Sie hierfür auf die Schaltfläche „set up a workflow yourself“.
Schritt 2: Code für den GitHub Workflow schreiben
Sobald Sie einen neuen Workflow erstellt haben, öffnet sich automatisch eine neue Datei namens main.yml im Verzeichnis .github/workflows. Diese Datei können Sie direkt in GitHub editieren und mit dem Code versehen, den Sie in Ihrem Workflow ausführen möchten. Dieser Code muss, wie die Dateiendung angibt, in der Programmiersprache YAML verfasst sein.
Welche Aktionen Sie in Ihrem Code spezifizieren, ist ganz Ihnen überlassen. Unser Beispielcode erstellt einen Workflow namens „example“ und wird jedes Mal ausgeführt, wenn es einen Commit zum Branch „main“ gibt:
name: example
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- run: make
Zunächst wird spezifiziert, wann genau der GitHub Workflow ausgeführt werden soll. Hierfür werden die Schlüsselwörter „on“ und „push“ genutzt. Diese triggern den Workflow, wenn hinter dem Schlüsselwort „branches“ Code angegeben ist.
Der Workflow selbst besteht aus einem Job namens „build“, der wiederum aus zwei einzelnen Schritten besteht und auf einem Ubuntu-Host ausgeführt wird.
Im ersten Schritt nutzen wir eine vordefinierte GitHub-Aktion namens „checkout“. Sie sorgt dafür, dass der gesamte Code des Repositorys auf den Host heruntergeladen wird. Der Parameter „fetch-depth“ kann genutzt werden, um die Anzahl der herunterzuladenden Commits zu spezifizieren. Die Angabe „0“ sorgt dafür, dass der gesamte Commit-Verlauf des Branches „main“ heruntergeladen wird.
Der zweite Schritt führt den Befehl „make“ auf dem Host aus. Mit diesem wird Code kompiliert und verwaltet, indem Befehle ausgeführt werden, die in aller Regel in einem sogenannten „Makefile“ angegeben sind.
Der Workflow selbst besteht aus einem Job namens „build“, der wiederum aus zwei einzelnen Schritten besteht und auf einem Ubuntu-Host ausgeführt wird.
Im ersten Schritt nutzen wir eine vordefinierte GitHub-Aktion namens „checkout“. Sie sorgt dafür, dass der gesamte Code des Repositorys auf den Host heruntergeladen wird. Der Parameter „fetch-depth“ kann genutzt werden, um die Anzahl der herunterzuladenden Commits zu spezifizieren. Die Angabe „0“ sorgt dafür, dass der gesamte Commit-Verlauf des Branches „main“ heruntergeladen wird.
Der zweite Schritt führt den Befehl „make“ auf dem Host aus. Mit diesem wird Code kompiliert und verwaltet, indem Befehle ausgeführt werden, die in aller Regel in einem sogenannten „Makefile“ angegeben sind.
Schritt 3: GitHub Workflow speichern und committen
Nachdem Sie den Code in Ihrem Workflow spezifiziert haben, müssen Sie die Datei nur noch speichern und anschließend committen. Fortan wird Ihr Workflow immer dann ausgeführt, wenn das von Ihnen angegebene Ereignis eintritt.