Als Code Stream-Administrator oder -Entwickler können Sie Code Stream-Cloud-Dienste in den Gerrit-Codeprüfungs-Lebenszyklus mithilfe des Gerrit-Auslösers integrieren. Das Ereignis löst die Ausführung einer Pipeline aus, wenn Sie einen Patch-Satz erstellen, Entwürfe veröffentlichen, Codeänderungen im Gerrit-Projekt zusammenführen oder Änderungen direkt in die Git-Verzweigung übertragen.

Wenn Sie den Auslöser für Gerrit hinzufügen, wählen Sie einen Gerrit-Listener sowie ein Gerrit-Projekt auf dem Gerrit-Server aus und konfigurieren Sie Gerrit-Ereignisse. In diesem Beispiel konfigurieren Sie zuerst einen Gerrit-Listener. Anschließend verwenden Sie diesen Listener in einem Gerrit-Auslöser mit zwei Ereignissen in drei verschiedenen Pipelines.

Voraussetzungen

Prozedur

  1. Klicken Sie in Code Stream auf Auslöser > Gerrit.
  2. (Optional) Klicken Sie auf die Registerkarte Listener und anschließend auf Neuer Listener.
    Hinweis: Wenn der Gerrit-Listener, den Sie für den Gerrit-Auslöser verwenden möchten, bereits definiert ist, überspringen Sie diesen Schritt.
    1. Wählen Sie ein Projekt aus.
    2. Geben Sie einen Namen für den Gerrit-Listener ein.
    3. Wählen Sie einen Gerrit-Endpoint aus.
    4. Geben Sie das API-Token ein.
      Das CSP-API-Token authentifiziert Sie für externe API-Verbindungen mit Code Stream. So rufen Sie das API-Token ab:
      1. Melden Sie sich bei vRealize Automation Cloud an.
      2. Klicken Sie auf den Dropdown-Pfeil neben Ihrem Namen.
      3. Klicken Sie auf Mein Konto.
      4. Klicken Sie auf API-Token.
      5. Klicken Sie auf Token generieren.
        1. Geben Sie einen Namen für das Token ein.
        2. Wählen Sie unter „Organisationsrollen“ die Option Organisationsbesitzer aus.
        3. Klicken Sie unter „Dienstrollen“ auf VMware Code Stream, um den Eintrag zu erweitern, und wählen Sie Code Stream-Administrator aus.
        4. Klicken Sie auf Generieren.

          Im Fenster Generiertes Token wird ein Token mit dem von Ihnen angegebenen Namen und dem Namen Ihrer Organisation angezeigt.

      6. Klicken Sie auf das Symbol KOPIEREN.

        Durch Klicken auf KOPIEREN wird sichergestellt, dass die exakte Zeichenfolge erfasst wird. Dies ist zuverlässiger als die Verwendung des Mauszeigers zum Kopieren der Zeichenfolge.

      Wenn Sie eine Variable erstellt haben, zeigt das API-Token den Variablennamen an, den Sie unter Verwendung der Dollar-Bindung eingegeben haben. Wenn Sie das Token kopiert haben, zeigt das API-Token das maskierte Token an.

      Bei Cloud-Instanzen verwendet der Gerrit-Auslöser-Listener einen Gerrit-Endpoint und ein API-Token, das Sie über Mein Konto in der VMware Cloud Services Console generieren.

    5. Zum Überprüfen der Token- und Endpoint-Details klicken Sie auf Überprüfen.
      Ihr Token läuft nach 90 Tagen ab.
    6. Klicken Sie auf Erstellen.
    7. Klicken Sie auf der Listener-Karte auf Verbinden.
      Der Listener beginnt mit der Überwachung aller Aktivitäten auf dem Gerrit-Server und überwacht alle aktivierten Auslöser auf diesem Server. Um die Überwachung eines Auslösers auf diesem Server zu beenden, deaktivieren Sie den Auslöser.
  3. Klicken Sie auf die Registerkarte Auslöser und anschließend auf Neuer Auslöser.
  4. Wählen Sie ein Projekt auf dem Gerrit-Server aus.
  5. Geben Sie einen Namen ein.
    Der Name des Gerrit-Auslösers muss eindeutig sein.
  6. Wählen Sie einen konfigurierten Gerrit-Listener aus.
    Code Stream verwendet den Gerrit-Listener, um eine Liste von Gerrit-Projekten bereitzustellen, die auf dem Server verfügbar sind.
  7. Wählen Sie ein Projekt auf dem Gerrit-Server aus.
  8. Geben Sie den Zweig im Repository ein, den der Gerrit-Listener überwachen wird.
  9. (Optional) Geben Sie Dateieinschlüsse oder -ausschlüsse als Bedingungen für den Auslöser an.
    • Sie geben Dateieinschlüsse an, die Pipelines auslösen. Wenn eine der Dateien in einem Commit mit den in den Einschlusspfaden oder dem Regex angegebenen Dateien übereinstimmt, werden die Pipelines ausgelöst. Wenn ein Regex angegeben ist, löst Code Stream nur die Pipelines mit Dateinamen im Änderungssatz aus, die mit dem angegebenen Ausdruck übereinstimmen. Der Regex-Filter ist nützlich, wenn ein Auslöser für mehrere Pipelines in einem einzelnen Repository konfiguriert wird.
    • Sie geben Dateiausschlüsse an, die die Auslösung von Pipelines verhindern. Wenn alle Dateien in einem Commit mit den in den Ausschlusspfaden oder dem Regex angegebenen Dateien übereinstimmt, werden die Pipelines nicht ausgelöst.
    • Priorisierung des Ausschlusses, wenn diese Option aktiviert ist, wird sichergestellt, dass Pipelines nicht ausgelöst werden. Die Pipelines werden nicht ausgelöst, selbst wenn eine der Dateien in einem Commit mit den Dateien übereinstimmt, die in den Ausschlusspfaden oder dem Regex angegeben sind. Die Standardeinstellung für Priorisierung des Ausschlusses ist deaktiviert.
    Wenn die Bedingungen sowohl den Dateieinschluss als auch den Dateiausschluss umfassen, werden Pipelines nicht ausgelöst.

    Im folgenden Beispiel sind sowohl die Dateieinschlüsse als auch die Dateiausschlüsse Bedingungen für den Auslöser.

    Die Dateieinschlüsse und Dateiausschlüsse werden als KLARTEXT-Paare oder REGEX-Paare mit Werten angezeigt.

    • Bei Dateieinschlüssen löst ein Commit mit einer Änderung in runtime/src/main/a.java oder einer beliebigen Java-Datei Pipelines aus, die in der Ereigniskonfiguration konfiguriert sind.
    • Bei Dateiausschlüssen werden bei einem Commit mit Änderungen nur in beiden Dateien die in der Ereigniskonfiguration konfigurierten Pipelines nicht ausgelöst.
  10. Klicken Sie auf Neue Konfiguration.
    1. Wählen Sie für ein Gerrit-Ereignis Patch-Satz erstellt, Entwurf veröffentlicht oder Änderung zusammengeführt aus. Oder wählen Sie für die direkte Weitergabe an Git mit Umgehung von Gerrit Direkt an Git weitergeben aus.
    2. Wählen Sie die Pipeline aus, die ausgelöst werden soll.
      Wenn die Pipeline benutzerdefinierte hinzugefügte Eingabeparametern enthält, werden in der Liste der Eingabeparameter Parameter und Werte angezeigt. Sie können Werte für Eingabeparameter eingeben, die mit dem Auslöserereignis an die Pipeline übergeben werden sollen. Alternativ können Sie auf die Eingabe von Werten verzichten oder die Standardwerte verwenden.
      Hinweis: Wenn Standardwerte definiert sind:
      • Alle für die Eingabeparameter eingegebenen Werte überschreiben die Standardwerte, die im Pipeline-Modell definiert sind.
      • Die Standardwerte in der Auslöserkonfiguration werden nicht geändert, wenn sich die Parameterwerte im Pipeline-Modell ändern.

      Informationen zum automatischen Einfügen von Eingabeparametern für Gerrit-Auslöser finden Sie unter Voraussetzungen.

    3. Für Patch-Satz erstellt, Entwurf veröffentlicht und Änderung zusammengeführt werden einige Aktionen standardmäßig mit Beschriftungen angezeigt. Sie können die Bezeichnung ändern oder Kommentare hinzufügen. Wenn dann die Pipeline ausgeführt wird, wird die Bezeichnung oder der Kommentar auf der Registerkarte Aktivität als die Durchgeführte Aktion für die Pipeline angezeigt.
      Mithilfe der Gerrit-Ereigniskonfiguration können Sie Kommentare eingeben, indem Sie eine Variable für den Kommentar „Erfolg“ oder „Fehler“ verwenden. Beispiel: ${var.success} und ${var.failure}.
    4. Klicken Sie auf Speichern.
    Um mehrere Auslöserereignisse für mehrere Pipelines hinzuzufügen, klicken Sie erneut auf Neue Konfiguration.
    Im folgenden Beispiel werden Ereignisse für drei Pipelines angezeigt:
    • Wenn ein Änderung zusammengeführt-Ereignis im Gerrit-Projekt auftritt, wird die Pipeline mit der Bezeichnung Gerrit-Pipeline ausgelöst.
    • Wenn ein Patch-Satz erstellt-Ereignis im Gerrit-Projekt auftritt, werden die Pipelines mit der Bezeichnung Gerrit-Auslöser-Pipeline und Gerrit-Demo-Pipeline ausgelöst.

    Die Konfiguration für den Gerrit-Listener und -Auslöser enthält die Ereignistypen und die Pipelines, die ausgelöst werden können.

  11. Klicken Sie auf Erstellen.
    Der Gerrit-Auslöser wird auf der Registerkarte Auslöser als neue Karte angezeigt und ist standardmäßig als Deaktiviert festgelegt.
  12. Klicken Sie auf der Auslöserkarte auf Aktivieren.
    Nach der Aktivierung des Auslösers kann er den Gerrit-Listener verwenden, der Ereignisse überwacht, die auf dem Zweig des Gerrit-Projekts auftreten.
    Um einen Auslöser zu erstellen, der dieselben Dateieinschluss- oder Dateiausschlussbedingungen hat, aber mit einem anderen Repository als dem, das Sie beim Erstellen des Auslösers verwendet haben, klicken Sie auf der Auslöserkarte auf Aktionen > Klonen. Klicken Sie dann im geklonten Auslöser auf Öffnen und ändern Sie die Parameter.

Ergebnisse

Herzlichen Glückwunsch! Sie haben erfolgreich einen Gerrit-Auslöser mit zwei Ereignissen in drei verschiedenen Pipelines konfiguriert.

Nächste Maßnahme

Nachdem Sie eine Codeänderung im Gerrit-Projekt ausgeführt haben, überprüfen Sie die Registerkarte Aktivität für das Gerrit-Ereignis in Code Stream. Stellen Sie sicher, dass die Liste der Aktivitäten Einträge enthält, die jeder Pipeline-Ausführung in der Auslöserkonfiguration entsprechen.

Wenn ein Ereignis auftritt, können nur Pipelines im Gerrit-Auslöser ausgeführt werden, die sich auf den jeweiligen Ereignistyp beziehen. Wenn in diesem Beispiel ein Patch-Satz erstellt wird, werden nur die Gerrit-Auslöser-Pipeline und die Gerrit-Demo-Pipeline ausgeführt.

Mit den Informationen in den Spalten auf der Registerkarte Aktivität wird jedes Gerrit-Auslöserereignis beschrieben. Sie können die angezeigten Spalten auswählen, indem Sie auf das Spaltensymbol klicken, das unterhalb der Tabelle angezeigt wird.
  • Die Spalten Betreff ändern und Ausführung sind leer, wenn der Auslöser eine direkte Git-Weitergabe war.
  • Die Spalte Gerrit-Auslöser zeigt den Auslöser an, der das Ereignis erstellt hat.
  • Die Spalte Listener ist standardmäßig deaktiviert. Wenn Sie sie auswählen, wird in der Spalte der Gerrit-Listener angezeigt, der das Ereignis empfangen hat. Ein einzelner Listener kann als mehreren Auslösern zugeordnet angezeigt werden.
  • Die Spalte Auslösertyp ist standardmäßig deaktiviert. Wenn Sie diese Option auswählen, wird in der Spalte der Auslösertyp als AUTOMATISCH oder MANUELL angezeigt.
  • Weitere Spalten sind Commit-Zeit, Ändern#, Status, Nachricht, Durchgeführte Aktion, Benutzer, Gerrit-Projekt, Verzweigung und Ereignis.

Die Registerkarte Aktivität für den Gerrit-Auslöser zeigt alle ausgewählten Spalten und die relevanten Informationen in jeder Spalte für alle Aktivitätseinträge an.

Um die Aktivität für eine abgeschlossene oder fehlgeschlagene Pipeline-Ausführung zu steuern, klicken Sie auf die drei Punkte links neben jedem Eintrag auf dem Bildschirm „Aktivität“.

  • Wenn die Pipeline aufgrund eines Fehlers im Pipeline-Modell oder eines anderen Problems nicht ausgeführt werden kann, korrigieren Sie den Fehler und wählen Sie Erneut ausführen aus, um die Pipeline erneut auszuführen.
  • Wenn die Pipeline aufgrund eines Problems mit der Netzwerkkonnektivität oder eines anderen Problems nicht ausgeführt werden kann, wählen Sie Fortsetzen aus, wodurch die Ausführung derselben Pipeline neu gestartet und Laufzeit eingespart wird.
  • Verwenden Sie Ausführung anzeigen, wodurch die Pipeline-Ausführungsansicht geöffnet wird. Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Ausführen einer Pipeline und Anzeigen von Ergebnissen.
  • Verwenden Sie die Option Löschen, um den Eintrag aus dem Aktivitätsbildschirm zu löschen.

Wenn ein Gerrit-Ereignis eine Pipeline nicht auslösen kann, klicken Sie auf Manuell auslösen, wählen Sie dann den Gerrit-Auslöser aus, geben Sie die Änderungs-ID ein und klicken Sie auf Ausführen.

Ein Gerrit-Ereignis tritt möglicherweise nicht auf, weil die Verbindung zwischen dem Gerrit-Server und dem Pipeline-Cloud-Proxy unterbrochen wurde. Ein Verbindungsverlust kann bis zu 10 Minuten dauern. Der Verbindungsverlust kann auftreten, wenn der Gerrit-Server aktualisiert oder neu gestartet wird oder wenn der Pipeline-Cloud-Proxy aktualisiert wird.