Filtrer les déclencheurs sur les requêtes push ou pull de code - AWS CodePipeline

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Filtrer les déclencheurs sur les requêtes push ou pull de code

Vous pouvez configurer des filtres pour les déclencheurs de pipeline afin de lancer l'exécution du pipeline pour différents événements Git, tels que le push de balises ou de branches, la modification de chemins de fichiers spécifiques, l'ouverture d'une pull request dans une branche spécifique, etc. Vous pouvez utiliser la AWS CodePipeline console ou les update-pipeline commandes create-pipeline et du AWS CLI pour configurer les filtres des déclencheurs.

Vous pouvez définir des filtres pour les types de déclencheurs suivants :

  • Push

    Un déclencheur push démarre un pipeline lorsqu'une modification est transmise à votre référentiel source. L'exécution utilisera le commit de la branche vers laquelle vous pointez (c'est-à-dire la branche de destination). Vous pouvez filtrer les déclencheurs push sur les branches, les chemins de fichiers ou les balises Git.

  • Pull request

    Un déclencheur de pull request démarre un pipeline lorsqu'une pull request est ouverte, mise à jour ou fermée dans votre référentiel source. L'exécution utilisera le commit de la branche source que vous extrayez (c'est-à-dire la branche source). Vous pouvez filtrer les déclencheurs de pull request sur les branches et les chemins de fichiers.

    Note

    Les types d'événements pris en charge pour les pull requests sont ouverts, mis à jour ou fermés (fusionnés). Tous les autres événements de pull request sont ignorés.

La définition du pipeline vous permet de combiner différents filtres au sein d'une même configuration de déclencheur push. Pour plus de détails sur la définition du pipeline, voirDéclencher le filtrage dans le pipeline JSON (CLI). Les combinaisons valides sont les suivantes :

  • balises

  • branches

  • branches + chemins de fichiers

Vous spécifiez les types de filtres comme suit :

  • Pas de filtre

    Cette configuration de déclencheur démarre votre pipeline à chaque poussée vers la branche par défaut spécifiée dans le cadre de la configuration de l'action.

  • Spécifier le filtre

    Vous ajoutez un filtre qui démarre votre pipeline sur un filtre spécifique, par exemple sur les noms de branches pour un envoi de code, et récupère le commit exact. Cela permet également de configurer le pipeline pour qu'il ne démarre pas automatiquement lors d'une modification.

  • Ne pas détecter les modifications

    Cela n'ajoute aucun déclencheur et le pipeline ne démarre pas automatiquement lors d'une modification.

Le tableau suivant fournit des options de filtre valides pour chaque type d'événement. Le tableau indique également quelles configurations de déclencheur sont définies par défaut sur true ou false pour la détection automatique des modifications dans la configuration de l'action.

Configuration du déclencheur Type d’événement Options de filtre Détecter les modifications
Ajouter un déclencheur — aucun filtre none none true
Ajouter un déclencheur — filtre en cas de poussée de code événement push Balises Git, branches, chemins de fichiers false
Ajouter un déclencheur — filtre pour les pull requests pull requests branches, chemins de fichiers false
Pas de déclencheur — ne pas détecter none none false
Note

Ce type de déclencheur utilise la détection automatique des modifications (en tant que type de Webhook déclencheur). Les fournisseurs d'actions source qui utilisent ce type de déclencheur sont des connexions configurées pour le transfert de code (Bitbucket Cloud GitHub, GitHub Enterprise Server, GitLab .com et GitLab autogérées).

Pour le filtrage, les modèles d'expressions régulières au format global sont pris en charge, comme indiqué dansUtilisation de modèles globulaires dans la syntaxe.

Note

Dans certains cas, pour les pipelines dont les déclencheurs sont filtrés sur les chemins de fichiers, le pipeline peut ne pas démarrer lorsqu'une branche avec un filtre de chemin de fichier est créée pour la première fois. Pour de plus amples informations, veuillez consulter Les pipelines avec des connexions qui utilisent le filtrage des déclencheurs par chemin de fichier peuvent ne pas démarrer lors de la création de la branche.

Considérations relatives aux filtres déclencheurs

Les considérations suivantes s'appliquent lors de l'utilisation de déclencheurs.

  • Dans le cas d'un déclencheur avec filtres de chemins de branches et de fichiers, lorsque vous appuyez sur la branche pour la première fois, le pipeline ne s'exécute pas car il n'est pas possible d'accéder à la liste des fichiers modifiés pour la branche nouvellement créée.

  • La fusion d'une pull request peut déclencher deux exécutions de pipeline, dans les cas où les configurations des déclencheurs push (filtre de branches) et pull request (filtre de branches) se croisent.

Exemples de filtres déclencheurs

Dans le cas d'une configuration Git avec des filtres pour les types d'événements push et pull request, les filtres spécifiés peuvent entrer en conflit les uns avec les autres. Vous trouverez ci-dessous des exemples de combinaisons de filtres valides pour les événements de requêtes push et pull.

Vous pouvez combiner des filtres au sein d'un même objet de configuration, et ces filtres utiliseront une AND opération, ce qui signifie que seule une correspondance complète démarrera le pipeline. L'exemple suivant montre une configuration Git avec deux filtres différents (filePathsetbranches) dans « l'objet de configuration » et non un seul filtre. Dans l'exemple suivant, filePaths sera AND écrit avec branches :

{ "filePaths": { "includes": ["common/**/*.js"] }, "branches": { "includes": ["feature/**"] } }

Avec la configuration Git ci-dessus, cet exemple montre un événement qui lancera l'exécution du pipeline en cas de réussite de l'ANDopération.

{ "ref": "refs/heads/feature/triggers", ... "commits": [ { ... "modified": [ "common/app.js" ] ... } ] }

Cet exemple montre un événement qui ne démarrera pas l'exécution du pipeline car la branche est capable de filtrer, mais pas le chemin du fichier.

{ "ref": "refs/heads/feature/triggers", ... "commits": [ { ... "modified": [ "src/Main.java" ] ... } ] }

Dans le même temps, les objets de configuration du déclencheur au sein du tableau push utilisent une opération OR. Cela vous permet de configurer plusieurs déclencheurs pour démarrer l'exécution du même pipeline. L'exemple suivant montre une configuration Git avec un seul filtre (branches) dans l'objet de configuration. Les Excludes opérations Includes et seront exécutées en mode OR, ce qui signifie que si une branche correspond à un modèle d'exclusion (comme feature-branch dans l'exemple), le pipeline ne sera pas déclenché à moins qu'une inclusion ne corresponde également. Si le modèle d'inclusion correspond, par exemple pour la main branche, le pipeline sera déclenché.

{ "branches": { "Includes": [ "main" ], "Excludes": [ "feature-branch" ] }

Pour obtenir la liste des définitions de champs de la JSON structure, consultezDéclencher le filtrage dans le pipeline JSON (CLI).