Wiederkehrende GitHub Actions planen
Die Workflows von GitHub Actions lassen sich ganz einfach als wiederkehrende Jobs konfigurieren. Dies funktioniert indem die geplanten Ausführungen in Form einer Cron Expression in der Workflow Definition hinterlegt werden.
Als Beispiel nehme ich wieder den Workflow aus einem früheren Beitrag. In diesem haben wir definiert, dass der Workflow bei jedem Push von Änderungen ins Repository ausgeführt werden soll. Dies sah so aus:
name: build-and-deploy
on: push
jobs:
# ...
Als Trigger unterstützt GitHub Actions neben push
noch eine ganze Menge anderer Möglichkeiten. Eine davon ist die Definition einer Cron Expression mittels schedule
. Wenn wir unseren Workflow also einmal pro Stunde ausführen möchten, können wir dies wie folgt machen:
name: build-and-deploy
on:
schedule:
- cron: '0 * * * *'
jobs:
# ...
Das Ganze funktioniert natürlich auch in Kombination und wir können auch mehrere Cron Expressions angeben. Der folgende Workflow würde zum Beispiel bei jedem Push in den main
Branch sowie am Ende jedes Tages und montags um vier Uhr ausgeführt werden:
name: build-and-deploy
on:
push:
branches:
- main
schedule:
- cron: '0 0 * * *'
- cron: '0 4 * * 1'
jobs:
# ...
Dadurch lassen sich die Workflows von GitHub Actions neben dem Bauen und Deployen von Software auch wunderbar einsetzen um wiederkehrende Aufräumarbeiten durchzuführen, wie z.B. das automatische Schliessen von inaktiven Issues. Sämtliche unterstützten Trigger findest du übrigens in der Dokumentation von GitHub. Und falls du Hilfe beim Erstellen einer Cron Expression benötigst gibt es dafür online diverse Generatoren die dir dies abnehmen.