c't 4/2022
S. 150
Praxis
CI/CD mit GitHub Actions
Bild: Thorsten Hübner

Selber machen lassen

CI/CD mit eigenen GitHub-Actions

Code kompilieren, Programmpakete bauen oder Unit-Tests ausführen: Solche Aufgaben lassen sich mit einer Continuous-Integration-Umgebung wie GitHub Actions automatisieren. Eigene Actions schreiben Sie mit wenigen Zeilen Code und automatisieren damit bequem auch mehrere Repositories.

Von Manuel Ottlik

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 [1]. 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:

Kommentieren