Jenkins Pipeline-Aktionen

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 14 Minuten Lesedauer
  • Verwenden Sie diese Aktionen in Ihrer Pipeline Jenkins, um mit dem Datenmodell DevOps Config zu interagieren.

    Wichtig:
    Ab dem Release Washington DC wird DevOps Config auf den Übergang in den Zustand „Veraltet“ vorbereitet. Es wird ausgeblendet und in neuen Instanzen nicht mehr installiert, aber weiterhin unterstützt. Weitere Informationen finden Sie im Artikel Deprecation Process [KB0867184] (Abkündigungsprozess) in der Now Support Knowledge Base.

    Jenkins geskriptete und deklarative Pipelines werden unterstützt.

    Diese Aktionen werden bereitgestellt, um eine bestimmte Pipeline-Definition zu erstellen, mit der Sie Ihr Ziel erreichen. Fügen Sie Ihrer Datei Jenkins einen Befehl hinzu, um diese Aktionen auszuführen.
    • snDevOpsConfig

      Kombinierte Aktion zum Hochladen, Validieren und Veröffentlichen von Konfigurationsdaten.

    • snDevOpsConfigUpload

      Konfigurationsdaten über Agent-Auftrag nach DevOps Config hochladen.

    • snDevOpsConfigGetSnapshots

      Rufen Sie Snapshots für ein bestimmtes bereitstellbares Element oder alle betroffenen bereitstellbaren Elemente ab.

    • snDevOpsConfigPublish

      Veröffentlichen Sie einen Snapshot für die angegebene Anwendung und das bereitstellbare Element.

    • snDevOpsConfigExport

      Exportieren Sie einen Snapshot für eine bestimmte Anwendung und ein bestimmtes bereitstellbares Element.

    • snDevOpsConfigRegisterPipeline

      Binden Sie ein Changeset und/oder einen Snapshot an eine Pipeline-Ausführung.

    • snDevOpsConfigValidate

      Validiert die Konfigurationsdaten anhand der Richtlinien Ihrer Organisation.

    • snDevOpsChange

      Erstellt eine Change-Anforderung, an die der zugehörige Snapshot angehängt ist.

    snDevOpsConfig

    Konfigurationsdatenänderungen in einem Schritt hochladen, validieren und veröffentlichen.

    Diese Aktion kombiniert die Aktionen snDevOpsConfigUpload, snDevOpsConfigGetSnapshots und snDevOpsConfigRegisterPipeline in einer Aktion, anstatt jede Aktion einzeln ausführen zu müssen.

    Eingabevariablen
    configFile Gibt die Konfigurationsdatendatei an, die in die Komponente oder den bereitstellbaren Pfad im Datenmodell hochgeladen werden soll.
    applicationName Gibt die Anwendung an, in die Konfigurationsdaten hochgeladen werden.
    Ziel Gibt das Datenmodellziel an, in das Konfigurationsdaten hochgeladen werden (z. B. Komponente, Sammlung, bereitstellbares Element).
    collectionName (Optional) Name der Sammlung, in die hochgeladen werden soll (erforderlich, wenn Ziel eine Sammlung ist).
    bereitstellbarerName (Optional) Name des bereitstellbaren Elements, in das hochgeladen werden soll (erforderlich, wenn das Ziel bereitstellbar ist).
    namePath

    Gibt den Namenspfad im Datenmodell an, wohin Konfigurationsdaten hochgeladen werden.

    Hinweis:
    Beim Hochladen in einen vars-Ordner müssen Sie den Namenspfad mit „vars/“ beginnen, um den Variablenordnerpfad anzugeben.
    dataFormat Gibt das Datenformat der Konfigurationsdatei an (z.  B. JSON, YAML, XMLusw.)
    autoCommit Gibt an, ob Konfigurationsdaten nach dem Hochladen committet werden sollen (wahr/falsch). Der Standardwert ist „true“.
    autoValidate Gibt an, ob Konfigurationsdaten während des Commits validiert werden sollen (wahr/falsch). Der Standardwert ist „true“.
    autoPublish Gibt an, ob die Konfigurationsdaten nach der Validierung veröffentlicht werden sollen (wahr/falsch). Der Standardwert ist „true“.
    changesetNumber

    (Optional) Gibt das (offene) Changeset an, dem diese Upload-Aktivität zugeordnet ist. Wenn nicht angegeben, wird ein neues Changeset erstellt.

    Hinweis:
    Wird nur für Szenarien mit mehreren Uploads verwendet.
    markierenFehlgeschlagen (Optional) Führen Sie für die Pipeline einen Fehler aus, falls der Validierungsversuch (aufgrund eines Back-End-Problems) fehlgeschlagen ist.
    showResults (Optional) Validierungsergebnisse im Protokoll der Jenkins -Auftragskonsole anzeigen.
    ContinueWithLatest (Optional) Gibt an, ob der neueste Snapshot gemäß der Kombination aus „aplicioName“, „deployableName“ und„changesetNumber“ zurückgegeben werden soll, wenn keine Snapshots generiert werden (wahr/falsch). Die Standardeinstellung ist „false“.
    Ausgabe
    • Bei Erfolg ein Snapshot oder eine Reihe von Snapshots.
    • Bei einem Fehler wird eine API-/Back-End-Fehlermeldung angezeigt.
    Beispiel
    • Eingabe:
      
      snapshotObj = snDevOpsConfig(
           applicationName: "PaymentDemo",
           configFile: "config/application/Collection/Collection2/*.json",
           target: "collection",
           collectionName: "release-1.0",
           namePath: "settings/infrastructure/database",
           dataFormat: "json",
           autoCommit: 'true',
           autoValidate: 'true',
           autoPublish: 'true',
           continueWithLatest: 'true',
           markFailed: 'true',
           showResults: 'false'
      )
      
      echo"*************************\n ${snapshotObj}"
    • Ausgabe der Jenkins snDevOpsConfig-Antwortausgabe
    Beispiel: Sammlung
    Hinweis:
    Beim Hochladen in eine Sammlung ist das Argument „collectionName“ erforderlich.
    
    snDevOpsConfig(
         applicationName: 'PaymentDemo',
         target: 'collection',
         collectionName: 'release-1.0',
         namePath: 'web-api-v1.0',
         configFile: 'k8s/helm/*.yml',
         dataFormat: 'yaml',
         autoCommit: 'true',
         autoValidate: 'true',
         autoPublish: 'true'
    )
    Beispiel: bereitstellbar
    Hinweis:
    Beim Hochladen in ein bereitstellbares Element ist das Argument „deployableName“ erforderlich.
    
    snDevOpsConfig(
         applicationName: 'PaymentDemo',
         target: 'deployable',
         deployableName: 'Production',
         namePath: 'web-api-v1.0',
         configFile: 'k8s/helm/*.yml',
         dataFormat: 'yaml',
         autoCommit: 'true',
         autoValidate: 'true',
         autoPublish: 'true'
    )
    Mehrere Uploads in einem Commit

    Um Konfigurationsdaten von verschiedenen Speicherorten hochzuladen oder einen Datensatz mit mehreren Zielen (z. B. eine Komponente, ein bereitstellbares Element) hochzuladen, die als einzelner Commit in Ihrem Datenmodell verfolgt werden, können Sie die Aktion snDevOpsConfigUpload so oft wie nötig für aufrufen Laden Sie den ersten Satz von Uploads herunter, und rufen Sie dann die snDevOpsConfig -Aktion für den endgültigen Upload auf.

    Hier ist ein Beispiel.

    • Erstellen Sie beim ersten Upload eine Variable (z. B. $changeset), und weisen Sie ihr den Rückgabewert des Schritts zu, damit er in nachfolgenden Uploads wiederverwendet werden kann​.

      1 - XML-Datei in Komponente hochladen:
      
      $changeset = snDevOpsConfigUpload(
           applicationName: 'PaymentDemo',
           target: 'component',
           namePath: 'paymentService-v1.0',
           configFile: 'infra/v1/config.xml',
           dataFormat: 'xml',
           autoCommit: 'false',
           autoValidate: 'false',
           autoPublish: 'false'
      )
    • Verwenden Sie bei nachfolgenden Uploads (und dem finalen Upload) die Variable als Eingabe​.

      2 – JSON-Datei in Ordner „vars“ des bereitstellbaren Elements hochladen:
      
      snDevOpsConfig(
           applicationName: 'PaymentDemo',
           target: 'deployable',
           deployableName: 'Production',
           namePath: 'vars/dbSettings',
           configFile: 'infra/prod/dbConfig.json',
           dataFormat: 'json',
           changesetNumber: ”${changeset}”,
           autoCommit: 'false',
           autoValidate: 'false',
           autoPublish: 'false',
           continueWithLatest: 'true'
      )
    Laden Sie mehrere Datenformate hoch
    Um Konfigurationsdaten in anderen Dateiformaten hochzuladen, können Sie die Aktion snDevOpsConfig mit diesen Spezifikationen aufrufen.
    • Stellen Sie sicher, dass das Argument „configFile“ einen Platzhalter im Pfad verwendet.
    • Geben Sie das Argument „dataFormat“ nicht an.

    Hier ist ein Beispiel.

    • Angenommen, wir haben diese Konfigurationsdateien.

      DevOps Config Jenkins-Upload-Dateien

    • So laden Sie die Konfigurationsdateien mit snDevOpsConfighoch.
      
      snDevOpsConfig(
           applicationName: 'PaymentDemo',
           target: 'component',
           namePath: 'paymentService-v1.0',
           configFile: 'infra/v1/*',
           autoCommit: 'true',
           autoValidate: 'true',
           autoPublish: 'true'
      )

    snDevOpsConfigUpload

    Mit dieser Aktion wird eine Konfigurationsdatei an einen bestimmten Speicherort in einem Anwendungsdatenmodell hochgeladen.

    Es soll iterativ für alle Konfigurationsdateien verwendet werden, die während der Pipeline-Ausführung in das Anwendungsdatenmodell hochgeladen werden sollen.

    Unterstützt:
    • Hochladen nach:
      • Eine Komponente, Sammlung oder ein bereitstellbares Element.
      • Der Variablenordner (vars) einer Komponente, Sammlung oder eines bereitstellbaren Elements.
    • Muster für reguläre Ausdrücke für die Eingabe der Konfigurationsdatei.
    • Fähigkeit, mehrmals in derselben Pipeline aufgerufen zu werden.
    Eingabevariablen
    configFile Gibt die Konfigurationsdatendatei an, die in die Komponente oder den bereitstellbaren Pfad im Datenmodell hochgeladen werden soll.
    applicationName Gibt die Anwendung an, in die Konfigurationsdaten hochgeladen werden.
    Ziel Gibt das Datenmodellziel an, in das Konfigurationsdaten hochgeladen werden (z. B. Komponente, Sammlung, bereitstellbares Element).
    collectionName (Optional) Name der Sammlung, in die hochgeladen werden soll (erforderlich, wenn Ziel eine Sammlung ist).
    bereitstellbarerName Name des bereitstellbaren Elements, in das hochgeladen werden soll (erforderlich, wenn das Ziel bereitstellbar ist).
    namePath

    Gibt den Namenspfad im Datenmodell an, wohin Konfigurationsdaten hochgeladen werden.

    Hinweis:
    Beim Hochladen in einen vars-Ordner müssen Sie den Namenspfad mit „vars/“ beginnen, um den Variablenordnerpfad anzugeben.
    dataFormat Gibt das Datenformat der Konfigurationsdatei an (z.  B. JSON, YAML, XMLusw.)
    konvertierenPfad (Optional) Gibt an, ob die Verzeichnisstruktur der Konfigurationsdateien (in Bezug auf den Arbeitsbereich) erhalten und das Verzeichnis innerhalb des Datenmodells in Pfade konvertiert werden soll.
    changesetNumber

    (Optional) Gibt das (offene) Changeset an, dem diese Upload-Aktivität zugeordnet ist. Wenn nicht angegeben, wird ein neues Changeset erstellt.

    Hinweis:
    Wird nur für Szenarien mit mehreren Uploads verwendet.
    autoCommit Gibt an, ob Konfigurationsdaten nach dem Hochladen committet werden sollen (wahr/falsch). Die Standardeinstellung ist „false“.
    autoValidate Gibt an, ob Konfigurationsdaten während des Commits validiert werden sollen (wahr/falsch). Die Standardeinstellung ist „false“.
    Ausgabevariable
    changesetNumber

    (Optional) Gibt das (offene) Changeset an, dem diese Upload-Aktivität zugeordnet ist.

    Wenn keine Changeset-Nummer angegeben wird, wird ein neues Changeset erstellt.

    Beispiel
    • Eingabe:

      Hier ist ein Beispiel für die Aktion snDevOpsConfigUpload. Zur Veranschaulichung weisen wir die Antwort einer Variablen zu, changeSetId, die für Debugging-Szenarien in unserem Konsolenprotokoll wiedergegeben werden kann.

      
      changeSetId = snDevOpsConfigUpload(
           applicationName: "PaymentDemo",
           target: 'component',
           namePath: "web-api-v1.0",
           configFile: "k8s/helm/values.yml",
           dataFormat: "json",
           autoCommit: 'true',
           autoValidate: 'true'
      )
      
      echo "Changeset: $changeSetId created"
    • Ausgabe:

      Zusätzlich zu den Daten, die in unser Datenmodell in DevOps Confighochgeladen werden, würde die Ausgabe in etwa so aussehen (Verwenden des BlueOcean-Plugins, um die Konsolenausgabe zu visualisieren).

      Ausgabe des DevOps Config-Konfigurations-Uploads

    Beispiel – Mehrere Uploads (Komponente)
    Sie können die Upload-Aktion mehrmals aufrufen, um Konfigurationsdaten in verschiedenen Dateiformaten von verschiedenen Speicherorten hochzuladen, während die Uploads Teil eines Changesets bleiben.
    • Benennen Sie die Aktion beim ersten Upload, damit die Ausgabevariable changesetNumber in nachfolgenden Uploads wiederverwendet werden kann.
      Upload der YAML-Datei:
      
      $changeset = snDevOpsConfigUpload(
           applicationName: 'PaymentDemo',
           target: 'component',
           namePath: 'wep-api-v1.0',
           configFile: 'k8s/helm/values.yml',
           dataFormat: 'yaml',
           autoCommit: 'false',
           autoValidate: 'false'
      )
    • Verweisen Sie in nachfolgenden Uploads auf die Ausgabevariable changesetNumber des ersten Uploads als Eingabevariable.
      Upload von 3 JSON-Dateien:
      
      snDevOpsConfigUpload(
           applicationName: 'PaymentDemo',
           target: 'component',
           namePath: 'wep-api-v1.0',
           configFile: 'infra/*.json',
           dataFormat: 'json',
           autoCommit: 'false',
           autoValidate: 'false',
           changesetNumber: ”${changeset}”
      )
    • Im letzten Aufruf wird nicht nur die Ausgabevariable changesetNumber aus dem ersten Upload als Eingabevariable referenziert, sondern auch autoCommit und autoValidate auf truefestgelegt.
      Upload der INI-Datei:
      
      snDevOpsConfigUpload(
           applicationName: 'PaymentDemo',
           target: 'component',
           namePath: 'wep-api-v1.0',
           configFile: 'featureToggles/set1.ini',
           dataFormat: 'ini',
           autoCommit: 'true',
           autoValidate: 'true',
           changesetNumber: ”${changeset}”
      )
    Beispiel – Mehrere Uploads (Sammlung und Variablen)
    Sie können die Upload-Aktion mehrmals aufrufen, um Konfigurationsdaten in verschiedenen Dateiformaten von verschiedenen Speicherorten hochzuladen, während die Uploads Teil eines Changesets bleiben.
    • Erstellen Sie beim ersten Upload eine Variable (z. B. $changeset), und weisen Sie ihr den Rückgabewert des Schritts zu, damit er in nachfolgenden Uploads wiederverwendet werden kann.
      XML-Dateiupload:
      
      $changeset = snDevOpsConfigUpload(
           applicationName: 'PaymentDemo',
           target: 'collection',
           collectionName: 'release-v1.0',
           namePath: 'v1-common-configs',
           configFile: 'infra/v1/config.xml',
           dataFormat: 'xml',
           autoCommit: 'false',
           autoValidate: 'false'
      )
    • Verwenden Sie in nachfolgenden Uploads die Variable als Eingabe.
      Upload der JSON-Datei:
      
      snDevOpsConfigUpload(
           applicationName: 'PaymentDemo',
           target: 'deployable',
           deployableName: 'Production',
           namePath: 'vars/dbSettings',
           configFile: 'infra/prod/dbConfig.json',
           dataFormat: 'json',
           autoCommit: 'true',
           autoValidate: 'true',
           changesetNumber: ”${changeset}”
      )
    Hinweis:
    Zum Hochladen in einen Variablenordner muss „uploadTarget“ auf „deployable“festgelegt werden, und für „deployableName“ und „changesetNumber“ müssen die richtigen Werte festgelegt sein.

    snDevOpsConfigGetSnapshots

    Diese Aktion soll in verschiedenen Szenarien verwendet werden:

    • Rufen Sie alle Snapshots für alle betroffenen bereitstellbaren Elemente ab.

      Wenn Konfigurationsdateien in ein Anwendungsdatenmodell hochgeladen werden, erstellt das System Snapshots für alle bereitstellbaren Elemente, die vom Upload betroffen sind. Wenn Sie dem CI-Flow folgen und davon ausgehen, dass für den letzten Upload-Aufruf die Validierung aktiviert war, besteht der nächste Schritt darin, die Liste der Snapshots zu durchlaufen und sicherzustellen, dass alle die Validierung bestanden haben.

    • Ruft einen bestimmten Snapshot ab.

      Nach dem CD-Flow wird ein bestimmter Snapshot abgerufen, damit er veröffentlicht und dann zur Verwendung nachgelagert exportiert werden kann (z. B. um eine Infrastruktur oder Anwendung bereitzustellen).

    • Rufen Sie die neuesten Snapshots für ein bereitstellbares Element einer Anwendung ab, falls ein Upload keine Snapshots generiert.

      Ein Satz von Konfigurationsdaten ist für die Bereitstellung in einer Umgebung für eine Kombination aus Anwendung, bereitstellbarem Element und Changeset verfügbar, wenn keine Konfigurationsänderungen vorgenommen werden.

    • Zeigen Sie die Ergebnisse der Richtlinienvalidierung in einer Pipelineausführung an.

      Zeigen Sie die Ergebnisse der Richtlinienvalidierung als Testergebnisse auf der Ergebnisseite des Jenkins-Build-Tests an, einschließlich konform mit Ausnahme, wenn Sie einen Snapshot abrufen.

    Eingabedefinitionen
    applicationName Gibt die Anwendung an, in die Konfigurationsdaten hochgeladen oder aus der Daten exportiert werden sollen.
    bereitstellbarerName (Optional) Gibt das bereitstellbare Element für die Anwendung an, für die die neuesten Snapshot-Daten abgerufen werden sollen.
    changesetNumber (Optional) Gibt die Changeset-ID für den Satz von Konfigurationsänderungen an, an denen der Benutzer interessiert ist.
    istValidiert (Optional) Gibt an, ob nur Snapshots zurückgegeben werden sollen, die übergeben wurden, oder nur Snapshots, die mit Ausnahme übergeben wurden (wahr/falsch). Der Standardwert ist „true“.
    ContinueWithLatest (Optional) Gibt an, ob der neueste Snapshot gemäß der Kombination aus „aplicioName“, „deployableName“ und„changesetNumber“ zurückgegeben werden soll, wenn keine Snapshots generiert werden (wahr/falsch). Die Standardeinstellung ist „false“.
    Ausgabe
    • Bei Erfolg ein Snapshot oder eine Reihe von Snapshots.
    • Bei einem Fehler wird eine API-/Back-End-Fehlermeldung angezeigt.
    Beispiel
    • Spezifischer Snapshot (angegeben):
      
      $snapshots = snDevOpsConfigGetSnapshots(
           applicationName: 'PaymentDemo',
           deployableName: 'Production',
           changesetNumber: 'Chset-16',
           isValidated: 'true',
           continueWithLatest: 'true'
      )
    • Letzter validierter Snapshot (gibt den neuesten Snapshot für die Kombination aus Anwendung und bereitstellbarem Element zurück):
      
      $snapshots = snDevOpsConfigGetSnapshots(
           applicationName: 'PaymentDemo',
           deployableName: 'Production',
           isValidated: 'true'
      )
    • Alle Changeset-Snapshots (gibt alle Snapshots für die Kombination aus Anwendung und bereitstellbarem Element zurück):
      
      $snapshots = snDevOpsConfigGetSnapshots(
           applicationName: 'PaymentDemo',
           changesetNumber: 'Chset-16'
      )
    • Zeigen Sie die Ergebnisse der Richtlinienvalidierung in einer Pipelineausführung an.
      1. Weisen Sie dem Pfad der Datei, die die Snapshot-Validierungsergebnisse enthält, die während der Aktion snDevOpsConfigGetSnapshots generiert wurden, eine Variable zu.
      2. Rufen Sie die JUnit-Aktion auf, um die Snapshot-Validierungsergebnisse in den Testabschnitt der Pipeline-Ausführung zu laden.
      
      stage('Validate') {
          steps {
      	script {
                 changeSetResults = snDevOpsConfigGetSnapshots( … )
                 if (!changeSetResults) {
                    echo "No snapshots were created"
                 } else {
      	       def changeSetResultsObject = readJSON text: changeSetResults
      
      	       changeSetResultsObject.each {
                        snapshotName = it.name
                        snapshotObject = it
      	       }
      	       // STEP 1
      		validationResultsPath = "${snapshotName}_${currentBuild.projectName}_${currentBuild.number}.xml"
      	    }
      	}
          }
      }
      
      post {
          always {
              // STEP 2
              junit testResults: "${validationResultsPath}", skipPublishingChecks: true
          }
      }
      

    snDevOpsConfigPublish

    Diese Aktion veröffentlicht einen Snapshot für die angegebene Anwendung und das bereitstellbare Element. Von hier aus kann der Snapshot durch den Exportprozess verwendet werden.

    Eingabedefinitionen
    applicationName Gibt die Anwendung an, aus der Konfigurationsdaten veröffentlicht werden sollen.
    bereitstellbarerName Gibt das bereitstellbare Element für die Anwendung an, aus der Konfigurationsdaten veröffentlicht werden sollen.
    snapshotName Gibt den Namen des zu veröffentlichenden Snapshots an.
    Ausgabe
    • Bei Erfolg „wahr“.
    • Andernfalls „falsch“.
    Beispiel
    
    snDevOpsConfigPublish(
         applicationName: 'PaymentDemo',
         deployableName: 'Production',
         snapshotName: 'Production-v23.dpl',
    )

    snDevOpsConfigExport

    Mit dieser Aktion wird ein Snapshot für die angegebene Anwendung und das bereitstellbare Element exportiert.

    Der Anwender sollte den Exporter, relevante Exporter-Argumente, das Exportformat (z. B. YAML, JSON) und den Ausgabespeicherort für die exportierten Konfigurationsdaten angeben.

    Von hier aus können die Konfigurationsdaten direkt als Eingabe für ein nachfolgendes Bereitstellungs- oder Bereitstellungstool in der Pipeline verwendet werden.

    Eingabeargumente
    applicationName Gibt die Anwendung an, aus der Daten exportiert werden sollen.
    bereitstellbarerName Gibt das bereitstellbare Konfigurationselement für die Anwendung an, aus der Daten exportiert werden sollen.
    snapshotName

    (Optional) Gibt den Snapshot an, aus dem Daten exportiert werden sollen.

    Wenn kein Snapshot angegeben ist, wird der neueste Snapshot für das bereitstellbare Element verwendet.

    exporterName Gibt den Exporter an, der auf den Snapshot angewendet werden soll (z. B. UniqueCDIs).
    exporterArgs (Optional) Gibt Argumente an, die zusammen mit dem Exporter verwendet werden sollen.
    exportFormat Gibt das Format für den Export der Snapshot-Daten an (z. B. INI, YAML, PROPS).
    fileName

    Gibt die Datei an, in die Daten exportiert werden sollen (vermutlich im Arbeitsbereich).

    Wenn kein Dateiname angegeben ist, wird standardmäßig eine Verkettung von Anwendungsname und bereitstellbarem Namen (einschließlich Dateierweiterung) verwendet.

    Ausgabe
    • Bei Erfolg „wahr“.
    • Andernfalls „falsch“.
    Beispiel
    
    snDevOpsConfigExport(
         applicationName: 'PaymentDemo',
         deployableName: 'Production',
         snapshotName: 'Production-v23.dpl',
         exporterFormat: 'yaml',
         exporterName: 'returnAllData-now',
         exporterArgs: '',
         fileName: 'exported_file-Production-20220302.yml'
    )

    snDevOpsConfigRegisterPipeline

    Diese Aktion bindet ein Changeset und/oder einen Snapshot an die Pipeline, sodass sie während der Pipeline-Ausführung nachverfolgt werden können. In DevOps Change-Geschwindigkeitwird dies in der Pipeline-UI angezeigt.

    Unter Ihren DevOps Change-Prozess beschleunigen finden Sie weitere Informationen zur Funktion DevOps Change-Beschleunigung.

    Eingabeargumente
    applicationName Gibt den Namen der Anwendung an.
    changesetNumber

    (Optional) Gibt den Changeset an, der der Pipeline-Ausführung zugeordnet werden soll.

    Hinweis:
    Geben Sie entweder „changesetNumber“ oder „snapshotName“ an, aber nicht beide.
    snapshotName

    (Optional) Gibt den Namen des Snapshots an, der der Pipeline-Ausführung zugeordnet werden soll.

    Hinweis:
    Geben Sie entweder „changesetNumber“ oder „snapshotName“ an, aber nicht beide.
    Ausgabe
    • Bei Erfolg „wahr“.
    • Andernfalls „falsch“.
    Beispiel
    • Eingabe:

      Hier ist ein Beispiel für die Aktion snDevOpsConfigRegisterPipeline. Zur Veranschaulichung weisen wir die Antwort einer Variablen zu, changeSetRegResult, die für Debugging-Szenarien in unserem Konsolenprotokoll wiedergegeben werden kann.

      
      changeSetRegResult = snDevOpsConfigRegisterPipeline(
           applicationName: "PaymentDemo",
           changesetNumber: "Chset-122"
      )
      
      echo "Pipeline registration result: ${changeSetRegResult}"
    • Ausgabe:

      Zusätzlich zu den Daten, die in unser Datenmodell in DevOps Confighochgeladen werden, würde die Ausgabe in etwa so aussehen (Verwenden des BlueOcean-Plugins, um die Konsolenausgabe zu visualisieren).

      Ausgabe der DevOps-Konfigurationsregister-Pipeline

    snDevOpsConfigValidate

    Validiert die Konfigurationsdaten anhand der Richtlinien Ihrer Organisation.

    Eingabeargumente
    applicationName Zu validierende Anwendung.
    bereitstellbarerName Bereitstellbar für die Anwendung zur Validierung.
    snapshotName (Optional) Name des zu validierenden Snapshots.
    markierenFehlgeschlagen (Optional) Führen Sie für die Pipeline einen Fehler aus, falls der Validierungsversuch (aufgrund eines Back-End-Problems) fehlgeschlagen ist.
    showResults (Optional) Validierungsergebnisse im Protokoll der Jenkins -Auftragskonsole anzeigen.
    Ausgabe
    • Bei Erfolg keine Ausgabe.
    • Bei einem Fehler wird eine API-/Back-End-Fehlermeldung angezeigt.
    Beispiel
    • Spezifischer Snapshot (angegeben):
      
      snDevOpsConfigValidate(
           applicationName: 'PaymentDemo',
           deployableName: 'Production',
           snapshotName: 'Production-v23.dpl',
      )
    • Aktueller Snapshot (ruft den neuesten Snapshot für die Kombination aus Anwendung und bereitstellbarem Element ab und validiert ihn):
      
      $changeset = snDevOpsConfigValidate(
           applicationName: 'PaymentDemo',
           deployableName: 'Production'
      )

    snDevOpsChange

    Erstellt eine Change-Anforderung und hängt einen Snapshot als Referenz an.

    Unter Ihren DevOps Change-Prozess beschleunigen finden Sie weitere Informationen zur Funktion DevOps Change-Beschleunigung.

    Eingabeargumente
    applicationName Gibt den Namen der Anwendung an.
    snapshotName Gibt den Namen des Snapshots an, der dem Change Request zugeordnet werden soll.
    Beispiel
    
    snDevOpsChange(
         applicationName: 'PaymentDemo',
         snapshotName: 'Production-v23.dpl'
    )

    Beispiel für Jenkins-Pipeline

    
    pipeline {
        environment {
            buildArtifactsPath = "build_artifacts/${currentBuild.number}"
            validationResultsPath = ""
        }
    
        agent any
    
        stages {
            // Initialize pipeline
            stage('Initialize') {
                steps {
                    script {
                        // DevOps Config application related information
                        appName = 'PaymentDemo'
                        deployableName = 'Production'
                        componentName = "web-api-v1.0"
                        collectionName = "release-1.0"
                        // Configuration file information
                        exportFormat = 'yaml'
                        configFilePath = "k8s/helm/values.yml"
                        // Exporter related information
                        exporterName = 'returnAllData-nowPreview' 
                        exporterArgs = ''
                        // Jenkins variables declared to be used in pipeline
                        exportFileName = "${buildArtifactsPath}/export_file-${appName}-${deployableName}-${currentBuild.number}.${exportFormat}"
                        changeSetId = ""
                        snapshotName = ""
                        snapshotObject = ""
                        isSnapshotValidateionRequired = false
                        isSnapshotPublisingRequired = false
                    }
                }
            }
                
            // Validate configuration data changes
            stage('Validate') {
                parallel {
                    stage('Config') {
                        stages('Config Steps') {
                            // Upload configuration data to DevOps Config
                            stage('Upload, Validate, & Publish') {
                                steps {
                                    sh "echo uploading and auto-validating configuration file: ${configFilePath}"
                                    script {
                                        changeSetResults = snDevOpsConfig(
                                            applicationName: "${appName}",
                                            target: 'component',
                                            namePath: "${componentName}",
                                            configFile: "${configFilePath}",
                                            dataFormat: "${configFileFormat}",
                                            autoCommit: 'true',
                                            autoValidate: 'true',
                                            autoPublish: 'true',
                                            isValidated: 'true',
                                            continueWithLatest: 'true',
                                            markFailed: 'true'
                                        )
    
                                        echo "Snapshots generated, validated, and published: ${changeSetResults}"
    
                                        def changeSetResultsObject = readJSON text: changeSetResults
    
                                        changeSetResultsObject.each {
                                            snapshotName = it.name
                                            snapshotObject = it
                                        }
    
                                        validationResultsPath = "${snapshotName}_${currentBuild.projectName}_${currentBuild.number}*.xml"
                                    }
                                }
                            }
                            // Export published snapshot to be used by downstream deployment tools
                            stage('Export') {
                                steps {
                                    script {
                                        // create build artifacts dir to store export file
                                        sh "mkdir -p ${buildArtifactsPath}"
                                        
                                        exportResponse = snDevOpsConfigExport(
                                            applicationName: "${appName}",
                                            snapshotName: "${snapshotObject.name}",
                                            deployableName: "${deployableName}",
                                            exporterFormat: "${exportFormat}",
                                            fileName: "${exportFileName}",
                                            exporterName: "${exporterName}",
                                            exporterArgs: "${exporterArgs}"
                                        )
                                    }
                                }
                            }
                        }
                    }
                }
            }
            
            // Create change request and attach snapshot for reference
            stage('Change Management') {
                steps {
                    script {
                        // Trigger change request
                        snDevOpsChange(
                            applicationName: "${appName}",
                            snapshotName: "${snapshotName}"
                        )
                    }     
                }
            }
        }
        // NOTE: attach snapshot validation results to run (if the snapshot fails validation)
        post {
            always {
                // attach policy validation results
                junit testResults: "${validationResultsPath}", skipPublishingChecks: true
            }
        }
    }