Trigger für Code-Push- oder Pull-Anfragen filtern - AWS CodePipeline

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.

Ü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 (filePathsundbranches) 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).