Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Trigger für Code-Push- oder Pull-Anfragen filtern
Sie können Filter für Pipeline-Trigger so konfigurieren, dass Pipeline-Ausführungen für verschiedene Git-Ereignisse gestartet werden, z. B. Tag- oder Branch-Push, Änderungen an bestimmten Dateipfaden, eine Pull-Anfrage, die in einem bestimmten Branch geöffnet wird, usw. Sie können die AWS CodePipeline Konsole oder die update-pipeline Befehle create-pipeline und in der verwenden, AWS CLI um die Filter der Trigger zu konfigurieren.
Sie können Filter für die folgenden Triggertypen angeben:
-
Push
Ein Push-Trigger startet eine Pipeline, wenn eine Änderung in Ihr Quell-Repository übertragen wird. Bei der Ausführung wird der Commit aus dem Branch verwendet, in den Sie pushen (das ist der Ziel-Branch). Sie können Push-Trigger nach Branches, Dateipfaden oder Git-Tags filtern.
-
Pull-Anfrage
Ein Pull-Request-Trigger startet eine Pipeline, wenn ein Pull-Request in Ihrem Quell-Repository geöffnet, aktualisiert oder geschlossen wird. Bei der Ausführung wird der Commit aus dem Quell-Branch verwendet, aus dem Sie einen Pull abrufen (das ist der Quell-Branch). Sie können Pull-Request-Trigger nach Branches und Dateipfaden filtern.
Anmerkung
Die unterstützten Ereignistypen für Pull-Requests sind geöffnet, aktualisiert oder geschlossen (zusammengeführt). Alle anderen Pull-Request-Ereignisse werden ignoriert.
Die Pipeline-Definition ermöglicht es Ihnen, verschiedene Filter innerhalb derselben Push-Trigger-Konfiguration zu kombinieren. Einzelheiten zur Pipeline-Definition finden Sie unterLöst die Filterung in der Pipeline aus JSON (CLI). Gültige Kombinationen sind:
-
tags
-
Geäst
-
Zweige + Dateipfade
Sie geben Filtertypen wie folgt an:
-
Kein Filter
Diese Trigger-Konfiguration startet Ihre Pipeline bei jedem Push zu dem Standardzweig, der als Teil der Aktionskonfiguration angegeben wurde.
-
Filter angeben
Sie fügen einen Filter hinzu, der Ihre Pipeline mit einem bestimmten Filter startet, z. B. bei Branch-Namen für einen Code-Push, und den exakten Commit abruft. Dadurch wird die Pipeline auch so konfiguriert, dass sie bei jeder Änderung nicht automatisch gestartet wird.
-
Erkennt keine Änderungen
Dadurch wird kein Trigger hinzugefügt und die Pipeline wird bei jeder Änderung nicht automatisch gestartet.
Die folgende Tabelle enthält gültige Filteroptionen für jeden Ereignistyp. Die Tabelle zeigt auch, welche Triggerkonfigurationen für die automatische Erkennung von Änderungen in der Aktionskonfiguration standardmäßig auf „true“ oder „false“ gesetzt sind.
Konfiguration des Triggers | Ereignistyp | Filteroptionen | Ermitteln Sie Änderungen |
---|---|---|---|
Einen Auslöser hinzufügen — kein Filter | Keine | Keine | true |
Einen Auslöser hinzufügen — Filter bei Code-Push | Ereignis pushen | Git-Tags, Zweige, Dateipfade | false |
Füge einen Trigger hinzu — Filter für Pull-Requests | Pull-Anfragen | Zweige, Dateipfade | false |
Kein Auslöser — nicht erkennen | Keine | Keine | false |
Anmerkung
Dieser Triggertyp verwendet die automatische Änderungserkennung (als Webhook
Triggertyp). Die Anbieter von Quellaktionen, die diesen Triggertyp verwenden, sind Verbindungen, die für Code-Push konfiguriert sind (Bitbucket Cloud GitHub, GitHub Enterprise Server, GitLab .com und GitLab selbstverwaltet).
Für die Filterung werden Muster regulärer Ausdrücke im Glob-Format unterstützt, wie unter beschrieben. Arbeiten mit Glob-Mustern in der Syntax
Anmerkung
In bestimmten Fällen startet die Pipeline bei Pipelines mit Triggern, die nach Dateipfaden gefiltert werden, möglicherweise nicht, wenn ein Zweig mit einem Dateipfadfilter zum ersten Mal erstellt wird. Weitere Informationen finden Sie unter Pipelines mit Verbindungen, die Triggerfilterung nach Dateipfaden verwenden, beginnen möglicherweise nicht bei der Branch-Erstellung.
Themen
Überlegungen zu Triggerfiltern
Die folgenden Überlegungen gelten für die Verwendung von Triggern.
-
Bei einem Trigger mit Verzweigungs- und Dateipfadfiltern wird die Pipeline nicht ausgeführt, wenn der Branch zum ersten Mal übertragen wird, da kein Zugriff auf die Liste der Dateien besteht, die für den neu erstellten Branch geändert wurden.
-
Das Zusammenführen einer Pull-Anfrage kann zwei Pipeline-Ausführungen auslösen, wenn sich die Konfigurationen der Trigger Push (Branches Filter) und Pull Request (Branches Filter) überschneiden.
Beispiele für Triggerfilter
Bei einer Git-Konfiguration mit Filtern für Push- und Pull-Request-Ereignistypen können die angegebenen Filter miteinander in Konflikt geraten. Im Folgenden finden Sie Beispiele für gültige Filterkombinationen für Push- und Pull-Request-Ereignisse.
Sie können Filter in einem einzigen Konfigurationsobjekt kombinieren, und diese Filter verwenden eine AND Operation, was bedeutet, dass nur eine vollständige Übereinstimmung die Pipeline startet. Das folgende Beispiel zeigt eine Git-Konfiguration mit zwei verschiedenen Filtern (filePaths
undbranches
) innerhalb des „Konfigurationsobjekts“ und nicht mit einem einzigen Filter. Im folgenden Beispiel filePaths
wird es wie folgt AND zusammengefaßt: branches
{ "filePaths": { "includes": ["common/**/*.js"] }, "branches": { "includes": ["feature/**"] } }
Bei der obigen Git-Konfiguration zeigt dieses Beispiel ein Ereignis, das die Pipeline-Ausführung startet, weil der AND Vorgang erfolgreich ist.
{ "ref": "refs/heads/feature/triggers", ... "commits": [ { ... "modified": [ "common/app.js" ] ... } ] }
Dieses Beispiel zeigt ein Ereignis, das die Pipeline-Ausführung nicht startet, weil der Branch filtern kann, der Dateipfad jedoch nicht.
{ "ref": "refs/heads/feature/triggers", ... "commits": [ { ... "modified": [ "src/Main.java" ] ... } ] }
Gleichzeitig verwenden Trigger-Konfigurationsobjekte innerhalb des Push-Arrays eine OR-Operation. Auf diese Weise können Sie mehrere Trigger konfigurieren, um die Ausführung für dieselbe Pipeline zu starten. Das folgende Beispiel zeigt eine Git-Konfiguration mit einem einzigen Filter (branches
) innerhalb des Konfigurationsobjekts. Die Excludes
Operationen Includes
und werden mit OR verknüpft, was bedeutet, dass, wenn ein Branch einem Ausschlussmuster entspricht (wie feature-branch
im Beispiel), die Pipeline nicht ausgelöst wird, es sei denn, ein Include stimmt ebenfalls überein. Wenn das Include-Muster übereinstimmt, z. B. für den main
Branch, wird die Pipeline ausgelöst.
{ "branches": { "Includes": [ "main" ], "Excludes": [ "feature-branch" ] }
Eine Liste der Felddefinitionen in der JSON Struktur finden Sie unterLöst die Filterung in der Pipeline aus JSON (CLI).