Explorer les événements
Les flux de travail GitHub Actions sont déclenchés par des événements : activités spécifiques qui se produisent dans votre référentiel ou selon une planification. Les événements sont définis par la on clause de votre définition de flux de travail et déterminent quand votre automatisation s’exécute.
Événements planifiés
Planifiez l’exécution de flux de travail à des moments spécifiques à l’aide de la syntaxe cron. Cela est parfait pour les tâches de maintenance, les rapports réguliers ou les builds nocturnes.
on:
schedule:
# Runs every weekday at 8 AM UTC
- cron: "0 8 * * 1-5"
# Runs every Sunday at midnight UTC
- cron: "0 0 * * 0"
Analyse de la syntaxe Cron :
- Minute (0-59) | Heure (0-23) | Jour (1-31) | Mois (1 à 12) | Jour de la semaine (0-6, dimanche=0)
- Utilisez des noms de mois :
JAN-DECet des noms de jour :SUN-SAT - Utiliser
*pour « any » (guillemets cron strings in YAML)
Exemples :
-
'0 9-17 * * 1-5'- Toutes les heures de 9 h à 17 h, Monday-Friday -
'30 2 * * *'- Tous les jours à 2 h 30 -
'0 0 1 * *'- Premier jour de chaque mois à minuit
Événements du référentiel de code
Les déclencheurs les plus courants répondent aux modifications de code dans votre référentiel :
Événements push et pull request de base
on:
# Single event
push
# Multiple events
pull_request
# Or as a list
on: [push, pull_request]
Événements filtrés avec des branches et des chemins d’accès
on:
push:
branches: [main, develop]
paths: ["src/**", "!docs/**"]
pull_request:
branches: [main]
types: [opened, synchronize, reopened]
Événements de référentiel courants
| Événement | Déclencheur | Cas d’usage |
|---|---|---|
push |
Code envoyé vers la branche | CI/CD, tests automatisés |
pull_request |
Demande de tirage ouverte/mise à jour | Automatisation de la révision du code |
release |
Publication publiée | Déployer en production |
create |
Branche/étiquette créée | Initialiser des environnements |
delete |
Branche/étiquette supprimée | Nettoyer les ressources |
Événements manuels
Déclenchez manuellement des flux de travail à partir de l’onglet Actions GitHub en utilisant 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
Note
Le fichier de flux de travail doit exister dans la branche par défaut pour apparaître dans l’interface utilisateur du déclencheur manuel.
Événements de webhook
GitHub fournit de nombreux événements webhook pour les activités de référentiel :
on:
# Wiki page created or updated
gollum
# Issues opened, closed, or edited
issues:
types: [opened, edited, closed]
# New release published
release:
types: [published]
Événements externes
Permet repository_dispatch de déclencher des flux de travail à partir de systèmes externes via l’API REST de GitHub :
on:
repository_dispatch:
types: [deploy-staging, run-tests]
Déclenchement externe :
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"}}'
Meilleures pratiques pour les événements
- Être spécifique : utiliser des filtres de branche et de chemin pour éviter les exécutions inutiles
- Combiner des événements connexes : regrouper des déclencheurs similaires dans un flux de travail
- Utiliser les types d’événements appropriés : choisissez le type d’événement le plus spécifique pour vos besoins
-
Tester manuellement en premier : Utiliser
workflow_dispatchpendant le développement - Surveiller l’utilisation : passer en revue les exécutions de flux de travail pour optimiser la configuration des événements
Pour obtenir la documentation complète sur les événements, consultez Événements qui déclenchent des flux de travail.