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:

1
2
3
4
5
6
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:

1
2
3
4
5
6
7
8
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:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
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.