Cron in einem Workflow
Füge deiner Workflow-Datei einen Zeit-Trigger hinzu: on: schedule: - cron: '30 5 * * 1-5'. Der Ausdruck nutzt die üblichen fünf Felder (Minute, Stunde, Tag im Monat, Monat, Wochentag) und muss in YAML in Anführungszeichen stehen, weil * ein Sonderzeichen ist. Du kannst mehrere Cron-Einträge angeben; github.event.schedule verrät, welcher ausgelöst hat.
UTC und das 5-Minuten-Limit
Zeitpläne werden immer in UTC ausgewertet: 0 9 * * * läuft um 09:00 UTC, nicht zu deiner Ortszeit – nutze die Ortszeit-Spalte des Tools zum Umrechnen. Das kürzeste von GitHub unterstützte Intervall sind fünf Minuten. Makros wie @daily werden nicht unterstützt, schreibe also die Felder aus. Plane außerdem einen Puffer ein, wenn nachgelagerte Schritte zu einer festen Uhrzeit fertig sein müssen.
Verzögerungen und inaktive Repositories
Geplante Läufe können bei hoher Last später starten, besonders zur vollen Stunde. Wähle daher eine ungerade Minute wie 17 statt 0, wenn der genaue Zeitpunkt nicht kritisch ist. In öffentlichen Repositories werden geplante Workflows nach 60 Tagen ohne Aktivität automatisch deaktiviert.
Geplante Workflows testen
Ergänze workflow_dispatch neben schedule, damit du den Workflow beim Testen manuell starten kannst. Zeitpläne laufen nur vom Standard-Branch aus; eine Cron-Änderung auf einem Feature-Branch wirkt also erst nach dem Merge. Eine concurrency-Gruppe verhindert, dass sich ein langsamer Lauf mit dem nächsten geplanten überschneidet.
Häufige Fragen
- Welche Zeitzone nutzt GitHub-Actions-Cron?
- Immer UTC. Das lässt sich nicht ändern, rechne deine Ortszeit beim Schreiben des Ausdrucks also in UTC um.
- Kann ein Workflow jede Minute laufen?
- Nein. Das Minimum sind fünf Minuten; häufigere Zeitpläne laufen höchstens alle fünf Minuten.
- Warum lief mein geplanter Workflow nicht pünktlich?
- Geplante Jobs werden eingereiht und können sich bei hoher Last verzögern; außerdem laufen sie nur auf dem Standard-Branch. Workflows in inaktiven öffentlichen Repositories werden pausiert.
- Kann ich @daily in GitHub Actions verwenden?
- Nein. Nutze die gleichwertigen fünf Felder, zum Beispiel 0 0 * * *.