GitHub Actions: Mit wenig Zeilen Code Repositories automatisieren

Code kompilieren, Programmpaket bauen oder Unit-Test ausführen: Solche Aufgaben automatisieren Sie mit der Continuous-Integration-Umgebung GitHub Actions.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht
, Bild: Thorsten Hübner

(Bild: Bild: Thorsten Hübner)

Lesezeit: 16 Min.
Von
  • Manuel Ottlik
Inhaltsverzeichnis

GitHub Actions ist unter den großen CI/CD-Angeboten auf dem Markt das jüngste, konnte sich neben den alten Hasen Jenkins und GitLab CI aber dennoch schnell durchsetzen, weil man die Verwaltung von Code im Repository und das automatische Bauen und Testen darin sinnvoll verknüpfen kann – eine ausführliche Einführung in GitHub Actions lesen Sie in diesem Artikel. Sobald Sie mehr als ein Repository automatisieren wollen, kommen Sie schnell an den Punkt, dass Sie nicht nur fertige Actions von anderen übernehmen, sondern eigene Automationsaufgaben zu Actions verpacken wollen.

Bevor Sie eigene Actions bauen, erklären wir kurz die Konzepte hinter GitHubs CI-Automat. GitHub Actions arbeitet mit drei Ebenen, um Arbeitsabläufe zu organisieren: Workflows, Jobs und Steps. Ein Workflow ist eine Sammlung aus einem oder mehreren Jobs, die als Reaktion auf ein Ereignis ausgeführt werden. Auslösendes Ereignis kann ein Push in einen Git-Branch sein, ein eröffneter Pull-Request oder ein definierter Zeitpunkt (vergleichbar mit Cron unter Linux). Mehrere Jobs innerhalb eines Workflows können parallel oder in Abhängigkeit voneinander laufen, arbeiten aber stets in eigenen Runner-Instanzen, teilen sich also kein gemeinsames Dateisystem. Jeder Job kann wiederum mehrere Steps beinhalten, die zwangsläufig aufeinander aufbauen und mit einem gemeinsamen Dateisystem arbeiten. Eine typische Abfolge von Steps sieht so aus:

Mehr zu Kubernetes, DevOps und CI/CD
  • das Repository auschecken
  • Abhängigkeiten installieren
  • Unit-Tests starten
  • die Anwendung kompilieren
  • das Kompilat in einen Docker-Container verpacken
c't Kompakt
  • GitHub Actions ist die CI/CD-Umgebung von GitHub und eng mit der Repository-Verwaltung verknüpft.
  • Fertige Actions gibt es bereits für viele typische CI/CD-Aufgaben in unterschiedlichen Programmiersprachen und Frameworks.
  • Mit wenig Aufwand schreiben Sie eigene Actions, nutzen sie in mehreren Projekten oder teilen sie mit Kollegen.

Am Ende wird das gesamte Dateisystem für den Job weggeworfen; was nicht anderweitig gespeichert wurde (zum Beispiel in einer Paket-Registry), verschwindet also. Ein Step ist die unteilbare kleinste Einheit und kann entweder aus einem einzelnen Kommandozeilenbefehl bestehen oder dem Aufruf einer sogenannten Action. Während Sie Kommandozeilenbefehle in jedem Ihrer Projekte in ganzer Länge ausschreiben müssen, können Sie mit Actions einen komplexen Arbeitsablauf in einem anderen Repository programmieren und aus einem oder mehreren Workflows aus beliebig vielen Repositorys darauf verweisen.