Einführung
GitHub Actions ist ein in GitHub integriertes System zur Automatisierung von Workflows. Es reagiert auf Repository-Ereignisse wie Pushes, Pull Requests oder manuelle Trigger und führt anschließend definierte Jobs automatisch aus.
Mit dieser Automatisierung lassen sich viele DevOps-Aufgaben erledigen, zum Beispiel Code testen, Artefakte erstellen und Anwendungen bereitstellen. Die Liste der Anweisungen wird als Workflow bezeichnet.
Auf einer höheren Ebene ist ein Workflow eine Pipeline-Definition. Er verwandelt Repository-Ereignisse in wiederholbare Automatisierung. Dadurch hängt die gleiche Abfolge nicht jedes Mal davon ab, dass eine Person sie korrekt aus dem Gedächtnis ausführt.
In diesem Lab schreiben Sie Ihre allererste Anleitung (einen Workflow) für diesen Roboter. Sie lernen die vier grundlegenden Bestandteile kennen, aus denen jeder Workflow besteht:
- Trigger: Wann soll der Roboter aufwachen? (Zum Beispiel, wenn Sie Code pushen.)
- Jobs: Welche größere Aufgabe soll der Roboter erledigen?
- Runner: Welchen Computer soll der Roboter für die Arbeit verwenden?
- Schritte: Welche konkreten Befehle soll der Roboter ausführen?
Am Ende dieses Labs verfügen Sie über eine funktionierende Pipeline, die bei jeder Aktualisierung Ihres Codes automatisch eine Begrüßung ausgibt.
Voraussetzungen
GitHub Actions ist wichtig, weil moderne Softwarebereitstellung auf wiederholbarer Automatisierung statt auf manuellen Klicks und dem Merken einzelner Schritte beruht.
Repository erstellen
Um GitHub Actions zu verwenden, benötigen Sie zunächst ein Projekt auf GitHub. Für dieses Modul erstellen Sie ein neues Repository. Dieses Repository wird in mehreren Labs verwendet. Halten Sie sich daher genau an die vorgegebene Namenskonvention.
Öffnen Sie Ihren Webbrowser und melden Sie sich bei GitHub an. Klicken Sie oben rechts auf einer beliebigen GitHub-Seite auf das Symbol + und wählen Sie New repository.
Geben Sie im Feld „Repository name“ den Namen github-actions-basics ein. Wenn Sie das Repository Public machen, ist es kostenlos und einfach zu verwenden. Aktivieren Sie das Kontrollkästchen Add a README file, damit das Repository mit einer Datei initialisiert wird. Klicken Sie abschließend auf die Schaltfläche Create repository.

Nachdem Ihr Projekt nun in der Cloud (GitHub) existiert, müssen Sie eine Kopie davon in diese Laborumgebung holen, damit Sie daran arbeiten können. Dieser Vorgang wird Klonen genannt.
Verwenden Sie im folgenden Terminal den Befehl git clone. Ersetzen Sie your-username durch Ihren tatsächlichen GitHub-Benutzernamen.
cd ~/project
git clone https://github.com/your-username/github-actions-basics.git
Nach Abschluss des Klonvorgangs sehen Sie einen neuen Ordner mit dem Namen github-actions-basics. Wechseln Sie in dieses Verzeichnis, um mit der Arbeit zu beginnen.
cd ~/project/github-actions-basics
GitHub Actions hat eine feste Regel dafür, wo nach Anweisungen gesucht wird. Es prüft ausschließlich einen bestimmten versteckten Ordner namens .github, der einen Unterordner namens workflows enthält. Wenn Sie Ihre Workflow-Dateien an einer anderen Stelle ablegen, ignoriert der Roboterassistent sie einfach.
Erstellen Sie diese erforderliche Verzeichnisstruktur. Die Option -p weist den Befehl an, sowohl übergeordnete als auch untergeordnete Verzeichnisse auf einmal zu erstellen, falls sie noch nicht existieren.
mkdir -p .github/workflows
Erstellen Sie anschließend eine leere Datei namens main.yml in diesem neuen Ordner. In diese Datei schreiben Sie Ihre Anweisungen.
touch .github/workflows/main.yml
Überprüfen Sie, ob die Einrichtung korrekt ist, indem Sie die Dateien rekursiv auflisten. Sie sollten den Ordner .github sehen, der workflows enthält; darin sollte sich main.yml befinden.
ls -R .github
Trigger definieren
Workflow-Dateien werden in YAML geschrieben. Dabei handelt es sich um ein einfaches Textformat, das Informationen mithilfe von Einrückungen (Leerzeichen) strukturiert – ähnlich wie eine Gliederung.
Jeder Workflow benötigt einen Namen und einen Trigger. Der Trigger legt fest, wann der Roboter mit der Arbeit beginnt. Ohne Trigger würde Ihr Workflow niemals ausgeführt. Der Roboter soll jedes Mal aufwachen, wenn Sie neuen Code in das Repository pushen.
Dieses ereignisgesteuerte Modell ist eine der wichtigsten Grundlagen von CI/CD-Systemen. Pipelines reagieren auf Änderungen im Softwarelebenszyklus, anstatt darauf zu warten, dass jemand Skripte manuell ausführt.
Öffnen Sie die leere Datei main.yml mit dem Texteditor nano.
nano .github/workflows/main.yml
Geben Sie den folgenden Inhalt in die Datei ein.
name: First Workflow
on: push
Das Schlüsselwort name gibt Ihrem Workflow eine Bezeichnung, die auf GitHub angezeigt wird. Die Zeile on: push ist der entscheidende Befehl. Sie bedeutet: „Wenn ein Push-Ereignis eintritt, führe diesen Workflow aus.“
Drücken Sie Ctrl+X, dann Y und anschließend Enter, um Ihre Änderungen zu speichern und den Editor zu schließen.
Job und Runner definieren
Nachdem der Roboter nun weiß, wann er aufwachen soll, müssen Sie ihm sagen, wo er arbeiten soll. Das wird durch die Definition eines Jobs und eines Runners festgelegt.
Ein Job ist eine Gruppe von Aufgaben. Sie können mehrere Jobs haben, zum Beispiel „Test Code“ und „Deploy App“. Für den Moment verwenden Sie jedoch nur einen Job.
Ein Runner ist der Server, den GitHub zur Ausführung Ihres Jobs bereitstellt. Stellen Sie sich den Runner als den Computer vor, an dem Ihr Roboterassistent arbeitet. Sie verwenden ubuntu-latest. Das bedeutet, dass GitHub Ihnen einen neuen Computer mit der aktuellen Version von Ubuntu Linux zur Verfügung stellt.
Dieser neue Runner ist wichtig, weil Workflow-Jobs reproduzierbar sein sollten. Jeder Lauf beginnt in einer sauberen Umgebung, statt sich auf Überbleibsel einer früheren manuellen Einrichtung zu verlassen.
Öffnen Sie die Datei main.yml erneut.
nano .github/workflows/main.yml
Fügen Sie die folgenden Zeilen am Ende der Datei ein. Achten Sie sehr genau auf die Einrückung. In YAML ist die Einrückung entscheidend. Das Wort first-job muss um zwei Leerzeichen und runs-on um vier Leerzeichen eingerückt werden.
jobs:
first-job:
runs-on: ubuntu-latest
Ihre vollständige Datei sollte nun wie im folgenden Block aussehen. Stellen Sie sicher, dass die Struktur exakt übereinstimmt.
name: First Workflow
on: push
jobs:
first-job:
runs-on: ubuntu-latest
Speichern und schließen Sie den Editor (Ctrl+X, Y, Enter).
Schritte hinzufügen und pushen
Sie haben nun das „Wann“ (on push) und das „Wo“ (ubuntu-latest) festgelegt. Jetzt folgt der wichtigste Teil: das „Was“. Dieses wird im Abschnitt Steps definiert.
Schritte sind die eigentlichen Befehle, die der Roboter ausführt. In diesem ersten Lab weisen Sie den Roboter lediglich an, eine Begrüßung auszugeben. Verwenden Sie dazu das Schlüsselwort run, um einen Standard-Linux-Befehl auszuführen.
Öffnen Sie main.yml ein letztes Mal.
nano .github/workflows/main.yml
Fügen Sie unter first-job den Abschnitt steps ein. Achten Sie darauf, dass steps: vertikal auf gleicher Höhe wie runs-on: steht.
steps:
- name: Print greeting
run: echo "Hello World from LabEx"
Der Bindestrich - kennzeichnet ein Listenelement. Sie listen damit die Schritte für den Job auf.
Ihre fertige Datei muss exakt so aussehen:
name: First Workflow
on: push
jobs:
first-job:
runs-on: ubuntu-latest
steps:
- name: Print greeting
run: echo "Hello World from LabEx"
Speichern und schließen Sie den Editor.
Nachdem Ihre Anleitung nun fertig ist, müssen Sie sie an GitHub senden. Der Roboter berücksichtigt nur den Code, der sich auf GitHub befindet, nicht den Code auf Ihrem lokalen Computer.
Führen Sie die üblichen Git-Befehle aus, um Ihre Änderungen zu speichern und hochzuladen.
git add .
git commit -m "Add my first workflow"
git push
Das System fragt Sie nach Ihrem GitHub-Benutzernamen und Passwort.
Wichtig: Wenn ein Fehler angezeigt wird, dass die Passwortauthentifizierung nicht mehr unterstützt wird, müssen Sie statt Ihres Kontopassworts ein Personal Access Token (PAT) verwenden. Sie können es unter GitHub unter Settings -> Developer settings -> Personal access tokens erstellen. Wählen Sie „Tokens (classic)“, erstellen Sie ein neues Token mit dem Bereich repo und fügen Sie dieses Token im Terminal ein, wenn Sie nach dem Passwort gefragt werden.

Wechseln Sie nach einem erfolgreichen Push zu Ihrem Browser. Öffnen Sie die Seite Ihres Repositorys und suchen Sie oben nach dem Tab Actions.
Sie sollten dort einen Workflow-Eintrag mit dem Namen „First Workflow“ sehen. Möglicherweise wird ein gelber, sich drehender Kreis (wird ausgeführt) oder ein grünes Häkchen (erfolgreich) angezeigt. Klicken Sie auf den Eintrag. Klicken Sie anschließend auf first-job, um die Details anzuzeigen. Sie können den Schritt „Print greeting“ erweitern und die Meldung „Hello World from LabEx“ in den Protokollen sehen.

Zusammenfassung
Herzlichen Glückwunsch! Sie haben Ihren ersten GitHub-Actions-Workflow erfolgreich erstellt und ausgeführt.
In diesem Lab haben Sie die vier Grundpfeiler einer Workflow-Datei kennengelernt:
- Trigger (
on): Legt fest, wann die Action gestartet wird. - Job: Fasst Aufgaben zusammen.
- Runner (
runs-on): Gibt die Serverumgebung an. - Step: Definiert den tatsächlich auszuführenden Befehl.
Nun haben Sie einen aktiven „Roboterassistenten“, der Ihr Repository überwacht. In den nächsten Labs bringen Sie diesem Assistenten weitere nützliche Aufgaben bei, zum Beispiel das automatische Testen Ihres Codes!



