Ereignisse erkunden
GitHub-Aktionen-Workflows werden durch Ereignisse ausgelöst – bestimmte Aktivitäten, die in Ihrem Repository oder in einem Zeitplan auftreten. Ereignisse werden durch die on Klausel in Ihrer Workflowdefinition definiert und bestimmen, wann ihre Automatisierung ausgeführt wird.
Geplante Ereignisse
Planen Sie Workflows für die Ausführung zu bestimmten Zeiten mithilfe der Cron-Syntax. Das eignet sich perfekt für Wartungsaufgaben, regelmäßige Berichte oder nächtliche Builds.
on:
schedule:
# Runs every weekday at 8 AM UTC
- cron: "0 8 * * 1-5"
# Runs every Sunday at midnight UTC
- cron: "0 0 * * 0"
Aufschlüsselung der Cron-Syntax:
- Minute (0-59) | Stunde (0-23) | Tag (1-31) | Monat (1-12) | Wochentag (0-6, Sonntag=0)
- Verwenden Sie Monatsnamen:
JAN-DECund Tagesnamen:SUN-SAT - Verwenden Sie
*für „any“ (setzen Sie cron-Zeichenfolgen in YAML in Anführungszeichen)
Beispiele:
-
'0 9-17 * * 1-5'- Jede Stunde von 9:00 bis 17:00 Uhr, Monday-Friday -
'30 2 * * *'- Täglich um 2:30 Uhr -
'0 0 1 * *'- Erster Tag jeden Monats um Mitternacht
Code-Repositoryereignisse
Die am häufigsten verwendeten Trigger reagieren auf Codeänderungen in Ihrem Repository:
Grundlegende Push- und Pullanforderungsereignisse
on:
# Single event
push
# Multiple events
pull_request
# Or as a list
on: [push, pull_request]
Gefilterte Ereignisse mit Verzweigungen und Pfaden
on:
push:
branches: [main, develop]
paths: ["src/**", "!docs/**"]
pull_request:
branches: [main]
types: [opened, synchronize, reopened]
Allgemeine Repositoryereignisse
| Event | Auslöser | Anwendungsfall |
|---|---|---|
push |
Code auf den Branch gepusht | CI/CD, automatisierte Tests |
pull_request |
PR geöffnet/aktualisiert | Automatisierung der Codeüberprüfung |
release |
Veröffentlichte Version | Für Produktion bereitstellen |
create |
Branch/Tag erstellt | Initialisieren von Umgebungen |
delete |
Branch/Tag gelöscht | Bereinigen von Ressourcen |
Manuelle Ereignisse
Manuelles Auslösen von Workflows über die Registerkarte "GitHub-Aktionen" mithilfe von workflow_dispatch:
on:
workflow_dispatch:
inputs:
environment:
description: "Deployment environment"
required: true
default: "staging"
type: choice
options:
- staging
- production
version:
description: "Version to deploy"
required: true
type: string
Hinweis
Die Workflowdatei muss in der Standardverzweigung vorhanden sein, damit sie in der UI für manuelles Auslösen angezeigt wird.
Webhook-Ereignisse
GitHub bietet viele Webhook-Ereignisse für Repositoryaktivitäten:
on:
# Wiki page created or updated
gollum
# Issues opened, closed, or edited
issues:
types: [opened, edited, closed]
# New release published
release:
types: [published]
Externe Ereignisse
Verwenden Sie repository_dispatch, um Workflows von externen Systemen über die GitHub REST-API auszulösen.
on:
repository_dispatch:
types: [deploy-staging, run-tests]
Externes Auslösen:
curl -X POST \
-H "Authorization: token YOUR_TOKEN" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/OWNER/REPO/dispatches \
-d '{"event_type":"deploy-staging","client_payload":{"environment":"staging"}}'
Bewährte Methoden für Ereignisse
- Seien Sie spezifisch: Verwenden von Verzweigungs- und Pfadfiltern, um unnötige Ausführungsläufe zu vermeiden
- Kombinieren verwandter Ereignisse: Gruppieren ähnlicher Trigger in einem Workflow
- Verwenden Sie geeignete Ereignistypen: Wählen Sie den spezifischesten Ereignistyp für Ihre Anforderungen aus.
-
Erst manuell testen: Verwenden Sie
workflow_dispatchwährend der Entwicklung - Überwachen der Verwendung: Überprüfen von Workflowläufen zur Optimierung der Ereigniskonfiguration
Eine vollständige Ereignisdokumentation finden Sie unter Ereignisse, die Workflows auslösen.