GitHub Workflows erweitern die Funk­tio­na­li­tät von GitHub und werden im Ordner .github/workflows direkt im ge­wünsch­ten Re­po­si­to­ry erstellt. Sie er­mög­li­chen es Ihnen, au­to­ma­ti­sier­te Aktionen aus­zu­füh­ren, wenn bestimmte Events auftreten.

Was sind GitHub Workflows?

Im Grunde genommen ist ein GitHub Workflow nichts anderes als eine Sammlung von be­stimm­ten, meist wie­der­keh­ren­den Aktionen, die au­to­ma­tisch aus­ge­führt werden, wenn ein be­stimm­tes Ereignis im Re­po­si­to­ry auftritt. Er besteht aus mehreren so­ge­nann­ten Jobs, die wiederum in einzelne Schritte bzw. Steps auf­ge­teilt sind. Neben dem event­ba­sier­ten Einsatz von Workflows können sie auch manuell gestartet oder innerhalb be­stimm­ter Zeit­in­ter­val­le aus­ge­führt werden. Die Workflows sind ein we­sent­li­cher Be­stand­teil der Con­ti­nuous-In­te­gra­ti­on-Plattform GitHub Actions.

Welche Aktionen der GitHub Workflow im Einzelnen umfasst, liegt dabei ganz in der Hand der Pro­gram­mie­ren­den. Häufige Ein­satz­ge­bie­te sind das au­to­ma­ti­sier­te Testen von Code, sobald dieser im Re­po­si­to­ry ak­tua­li­siert wurde, oder das Be­nach­rich­ti­gen von Team-Mit­glie­dern, sobald Än­de­run­gen im Re­po­si­to­ry auftreten.

Tipp

Wenn Sie GitHub für Ihr Web­pro­jekt nutzen, lohnt sich die Nutzung von IONOS Deploy Now, um Ihre Pro­duk­ti­vi­tät zu steigern. Der bereits ein­ge­rich­te­te GitHub Actions Workflow sorgt au­to­ma­tisch 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 Grund­kennt­nis­se in der Pro­gram­mier­spra­che YAML und ein GitHub Re­po­si­to­ry, in dem Sie Ihren Workflow ausführen und be­reit­stel­len möchten. Wenn Sie eine in­te­grier­te Ent­wick­lungs­um­ge­bung nutzen, um Ihren YAML-Code zu schreiben, kann Ihnen der GitHub Copilot sogar bei der Er­stel­lung des Workflow-Codes be­hilf­lich sein.

Schritt 1: Workflow aufsetzen

Nachdem Sie ein Re­po­si­to­ry angelegt haben oder ein bereits be­stehen­des Re­po­si­to­ry für Ihren GitHub Workflow aus­ge­wä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 Schalt­flä­che „set up a workflow yourself“.

Schritt 2: Code für den GitHub Workflow schreiben

Sobald Sie einen neuen Workflow erstellt haben, öffnet sich au­to­ma­tisch eine neue Datei namens main.yml im Ver­zeich­nis .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 Da­tei­endung angibt, in der Pro­gram­mier­spra­che YAML verfasst sein.

Welche Aktionen Sie in Ihrem Code spe­zi­fi­zie­ren, ist ganz Ihnen über­las­sen. Unser Bei­spiel­code erstellt einen Workflow namens „example“ und wird jedes Mal aus­ge­fü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 spe­zi­fi­ziert, wann genau der GitHub Workflow aus­ge­führt werden soll. Hierfür werden die Schlüs­sel­wör­ter „on“ und „push“ genutzt. Diese triggern den Workflow, wenn hinter dem Schlüs­sel­wort „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 aus­ge­führt wird.

Im ersten Schritt nutzen wir eine vor­de­fi­nier­te GitHub-Aktion namens „checkout“. Sie sorgt dafür, dass der gesamte Code des Re­po­si­to­rys auf den Host her­un­ter­ge­la­den wird. Der Parameter „fetch-depth“ kann genutzt werden, um die Anzahl der her­un­ter­zu­la­den­den Commits zu spe­zi­fi­zie­ren. Die Angabe „0“ sorgt dafür, dass der gesamte Commit-Verlauf des Branches „main“ her­un­ter­ge­la­den wird.

Der zweite Schritt führt den Befehl „make“ auf dem Host aus. Mit diesem wird Code kom­pi­liert und verwaltet, indem Befehle aus­ge­führt werden, die in aller Regel in einem so­ge­nann­ten „Makefile“ angegeben sind.

Schritt 3: GitHub Workflow speichern und committen

Nachdem Sie den Code in Ihrem Workflow spe­zi­fi­ziert haben, müssen Sie die Datei nur noch speichern und an­schlie­ßend committen. Fortan wird Ihr Workflow immer dann aus­ge­führt, wenn das von Ihnen an­ge­ge­be­ne Ereignis eintritt.

Zum Hauptmenü