Explorer les événements

Effectué

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-DEC et 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_dispatch pendant 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.