Artefakte und Pakete

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 11 Minuten Lesedauer
  • Artefakte und Pakete ermöglichen es DevOps Change-Geschwindigkeit, Entwicklungs- und Testaktivitäten für eine Vielzahl von Bereitstellungs- und Releasemodellen nachzuverfolgen. Diese Funktion stellt sicher, dass im Datenmodell DevOps gespeicherte Pipeline-Aktivitäten abgerufen und angewendet werden können, wenn Artefakte zu unterschiedlichen Zeiten oder in anderen Pipelines erstellt und veröffentlicht werden.

    Artefakte

    Wenn eine Artefaktversion registriert ist, werden zugehörige Aktivitäten wie Commits, Tests und Codescans nachverfolgt, sodass diese Details unabhängig davon abgerufen werden können, wann die Artefaktversion bereitgestellt wird. Sie kann sich in der aktuellen Pipeline-Ausführung befinden, in einer späteren Ausführung derselben Pipeline, in einer Pipeline, die von der aktuellen Pipeline ausgelöst wird, oder in einer separaten Pipeline, die unabhängig ausgelöst wird.

    Wenn Sie Commits einer Artefaktversion (CI-Pipeline) zuordnen und ein Artefaktpaket (CD-Pipeline) definieren, werden alle Artefaktversionen, die seit der letzten Bereitstellung der App in der Produktion generiert wurden, in die Liste der Commits für den Change aufgenommen. Die Konsolidierung dieser Elemente ist hilfreich, insbesondere wenn vor der Bereitstellung mehrere CI-Builds vorhanden sind.

    DevOps Change-Anforderungsattribute:

    Pakete

    Ein Paket verfolgt, wenn eine oder mehrere Artefaktversionen in einer Bereitstellungspipeline verwendet werden. Dies bietet zwei wichtige Vorteile:
    1. Abruf von Aktivitäten für alle im Paket deklarierten Artefaktversionen. Zum Beispiel für die Verwendung in einer Richtlinie für automatisierte Change-Genehmigungen.
    2. Aufzeichnung, wenn eine angegebene Artefaktversion erfolgreich freigegeben wurde, um sicherzustellen, dass an sie gebundene Informationen nicht mehr berücksichtigt werden. Zum Beispiel für spätere Change-Anforderungen.

    Artefakt-Setup

    1. Erstellen Sie einen Artefakt-Tool-Datensatz in DevOps.
      Hinweis:
      Ein Artefakt-Tool ist nicht erforderlich, es sei denn, es ist eine Webhook- oder vom Anwender erstellte Integrations-Subflow-Konfiguration erforderlich, um nach Artefakt-Versionen zu suchen.
    2. Registrieren Sie Artefakte in der CI-Pipeline.
    3. Erstellt ein Paket in der CD-Pipeline.
      Hinweis:
      Der Paketerstellungsschritt muss vor dem Prod-Bereitstellungsschritt liegen.

    Artefaktregistrierung

    Konfigurieren Sie die Artefaktregistrierung in einer geskripteten Pipeline oder einem Freestyle-Auftrag mithilfe des Endpunkts /artifact/registration der DevOps-API. Mehrere Artefaktversionen werden unterstützt.

    Für Pipeline Jenkins :
    • Geskriptete und deklarative Pipeline (Befehl„snDevOpsArtifact Jenkinsfile“)

      Zum Beispiel:
      snDevOpsArtifact(artifactsPayload: """{"artifacts": [{"name": "sa-web.jar", "version": "1.9","semanticVersion": "1.9.0","repositoryName": "services-1031"}], "branchName": "master"}""")
    • Freestyle-Auftrag (Build-Schritt„Artefakt registrieren “)

      Zum Beispiel:
      {"artifacts":[{"name":"sentiment-analysis-web2","version":"1.9","semanticVersion":"1.9.0","repositoryName":"maven-releases"}]}

    Artefaktpaketerstellung

    Wichtig:
    Sie müssen den Paketerstellungsschritt vor dem Change-Schritt in Ihrer Pipeline hinzufügen, und die Paketerstellung muss in einer Phase vor dem Change-Schritt hinzugefügt werden, damit Pakete mit der Pipeline-Ausführung für eine Change-Anforderung verknüpft werden.
    Konfigurieren Sie die Artefaktpaketerstellung in einer geskripteten Pipeline oder einem Freestyle-Auftrag mithilfe des Endpunkts „/package/registration“ der DevOps-API.
    Hinweis:
    Paketname muss angegeben werden.
    Für Pipeline Jenkins :
    • Freestyle-Auftrag (Build-Schritt„Paket erstellen “)

      Zum Beispiel:

      {"artifacts":[{"name":"sentiment-analysis-web2","version":"1.9","repositoryName":"maven-releases"}]}
    • Deklarative und geskriptete Pipeline (BefehlsnDevOpsPackage Jenkinsfile)

      Paket mit mehr als einem Artefakt (aus verschiedenen Repositorys) in der Nutzlast, z. B.:
      snDevOpsPackage(name: "sentimentpackage", artifactsPayload: """{"artifacts":[{"name": "sa-web.jar", "version": "1.9", "repositoryName": "services-1031"}, "{"name": "sa-db.jar", "version": "1.3.2", "repositoryName": "services-1032"}], "branchName": "master"}""")

      DevOps Change-Beschleunigung für Releases-Paket

    Hinweis:
    Wenn eine Artefaktversion während des Builds nicht verfügbar ist, werden Build-Details (pipelineName oder projectName, taskExecutionNumber, stageName, branchName) verwendet, um die Artefaktversion in der Aufgabenausführung zu suchen.

    Jenkins Plugin-Schritt „IncludeBuildInfo“ kann verwendet werden, um Build-Details in den API-Aufruf aufzunehmen.

    Artefakt-Workflow und -objekte

    Der Orchestration-Tool-Auftrag veröffentlicht das neue Artefakt (bestehend aus Versionen) im Artefakt-Repository. Jede Artefaktversion ist einer Aufgabenausführung zugeordnet (bestehend aus den zugehörigen Code-Commits). Für das Release wird ein Paket erstellt (bestehend aus bestimmten Artefaktversionen, die für die Bereitstellung gekennzeichnet sind). Nach Abschluss der Bereitstellungsphase wird das Paket als in der Produktion bereitgestellt markiert.

    Diese Objekte sind Teil der Artefaktstruktur.

    • Artefakttool

      Wird zur Unterstützung von Artefakt-Repository-Managern wie JFrog Artifactory verwendet.

      Hinweis:
      Ein Artefakt-Tool ist nicht erforderlich, es sei denn, es ist eine Webhook- oder vom Anwender erstellte Integrations-Subflow-Konfiguration erforderlich, um nach Artefakt-Versionen zu suchen.
    • Artefakt-Repository

      Ziel für Artefakte, die in einem Build generiert werden, und auch eine Quelle von Artefakten, die für einen Build erforderlich sind. Kann manuell oder über die RegisterArtifact-API erstellt werden, wenn neue Artefakte unter neuen Repositorys in einem Tool veröffentlicht werden.

    • Artefakt

      Artefaktname, für den verschiedene Builds (Artefaktversionen) generiert werden. Kann manuell oder über die RegisterArtifact-API erstellt werden. Artefakte (Versionen) werden einer Aufgabenausführung zugeordnet und in einem Artefakt-Repository veröffentlicht.

    • Artefaktversion

      Spezifische Version des Artefakts. Bereitstellbare Komponente einer Anwendung, die von einem CI-Build generiert wurde. Wenn angegeben, wird die semantische Version verwendet.

      Kann durch Discovery oder über die RegisterArtifact-API erstellt werden. Artefakte (Versionen) werden einer Aufgabenausführung zugeordnet und in einem nachverfolgten Artefakt-Repository veröffentlicht.

    • Semantische Version

      Optionales Attribut einer Artefaktversion, das, wenn angegeben, verwendet wird, um Commits für einen Change zu bestimmen. Das semantische Versionsformat ist (MAJOR.MINOR.PATCH).

    • Paket

      Sammlung von Artefaktversionen, die als Eingabe für eine CD-Pipeline oder zum Zuordnen von Testergebnissen verwendet werden.

      Die Paketerstellung wird durch den API-Aufruf CreatePackage des Orchestration-Tools ausgelöst und enthält den Namen, die Version und den Repository-Namen aller im Paket enthaltenen Artefaktversionen. Ein Kontrollkästchen zeigt an, ob das Paket in der Produktion bereitgestellt wurde.

    DevOps Change-Beschleunigung für Releases:
    Abbildung : 1. DevOps Change-Anforderung – Kategorie „DevOps“.
    DevOps-Change-Anforderung.
    Abbildung : 2. DevOps Change-Anforderung – Commits und Arbeitselemente
    Commits der DevOps-Change-Anforderung.
    Abbildung : 3. DevOps Artefaktversionsliste
    Versionsliste des DevOps-Artefakts.
    Abbildung : 4. DevOps Artefaktversion: Commits
    Commits des DevOps-Artefakts.
    Abbildung : 5. DevOps Artefaktversion: Pakete
    DevOps-Artefaktpakete.
    Abbildung : 6. DevOps Paket
    DevOps-Paket.

    Sie können auch alle vorhandenen Pipeline-Change-Anforderungen direkt im Modul Changes im Anwendungsnavigator anzeigen.

    Abbildung : 7. Changes-Modul

    Sie können alle vorhandenen Change-Steuerungs- und Pipeline-Change-Anforderungen direkt im Changes- Modul im Anwendungsnavigator anzeigen.

    Navigieren zu DevOps – Change-Arbeitsbereich > Changes > Pipeline-Change-Anforderungen > Alle für alle Informationen im Zusammenhang mit Changes.

    Pipeline-Change-Anforderungen

    Pipeline-Change-Anforderungen.
    Abbildung : 8. Listenmodul

    Sie können alle vorhandenen Artefakte und Pakete direkt mit dem Listenmodul im Anwendungsnavigator anzeigen.

    Navigieren zu DevOps – Change-Arbeitsbereich > Listen > Artefakt für alle Artefakt-bezogenen Informationen.

    Liste der Artefakte und Pakete.

    Überwachung von Artefakten und Paketen

    Wenn Artefakte und Pakete aus einem Quelltool in ServiceNowregistriert werden, werden sie häufig in der Tabelle sn_devops_artifact_staging bereitgestellt, während die verbleibenden Daten, die für die Erstellung und Verknüpfung dieser Objekte erforderlich sind, entweder von eingehenden Ereignissen empfangen oder von DevOps -Flows abgerufen werden.

    Meistens werden diese Staging-Datensätze innerhalb weniger Sekunden verarbeitet. Es kann jedoch Fälle geben, in denen die erforderlichen Daten nie empfangen werden, sodass diese Datensätze möglicherweise im Leerlauf verbleiben. Das Feld Beschreibung in der folgenden Tabelle enthält eine Zusammenfassung der Details, die in solchen Fällen fehlen, um die Überwachung zu erleichtern.

    Hinweis:
    Es wird empfohlen, eindeutige Artefaktnamen für Release-Builds zu verwenden, d. h. verschiedene Artefaktnamen für Builds, die auf verschiedenen Verzweigungs-Builds ausgeführt werden.
    Bereitstellungstyp Bereitstellungscode Wann kann dies geschehen? Endgültiger Status? Beschreibung
    create_package_association WARTEN_FÜR_Andere_bereitgestellte_Anforderungen Während eines Aufrufs zur Paketregistrierung, wenn die Aufgabenausführung, von der der Aufruf stammt, im System gefunden und nachverarbeitet wird, aber nicht alle Artefaktversionen, die in der Nutzlast der Artefakte übergeben wurden, im System gefunden wurden. Nein

    Ihre Anforderung zur Paketregistrierung ist aus folgendem Grund ausstehend:

    Aufgabenausführung für Zuordnung gefunden (TE00012345), und das Nachverarbeitungskennzeichen ist auf „wahr“ gesetzt, aber nicht alle Artefaktversionen wurden gefunden.

    Gesamtanzahl der Artefakte: 2

    create_package_association TASK_EXEC_POST_VERARBEITUNG_AUSSTEHEND Während eines Aufrufs zur Paketregistrierung, wenn die Aufgabenausführung, von der der Aufruf stammt, im System gefunden wird, aber noch nicht nachverarbeitet wurde. Das heißt, das Webhook-Ereignis „Abgeschlossen“ für diese Aufgabenausführung wurde noch nicht verarbeitet. Nein

    Ihre Anforderung zur Paketregistrierung ist aus folgendem Grund ausstehend:

    Aufgabenausführung für Zuordnung gefunden (TE00012345), das Kennzeichen für „Nachverarbeitung abgeschlossen“ ist jedoch nicht auf „Wahr“ festgelegt.

    Gesamtanzahl der Artefakte: 2

    create_package_association KEINE_TASK_AUSFÜHRUNG_GEFUNDEN Während eines Aufrufs zur Paketregistrierung, wenn die Aufgabenausführung, von der der Aufruf stammt, noch nicht im System gefunden wurde. Nein

    Ihre Anforderung zur Paketregistrierung ist aus folgendem Grund ausstehend:

    Aufgabenausführung für Zuordnung nicht gefunden (pipelineName = TestPipeline, stageName = Paket, taskExecutionNumber = 18).

    Gesamtanzahl der Artefakte: 2

    create_package VERSION_NOT_FOUND Während eines Paketregistrierungsaufrufs, wenn die Artefaktversion, die in der Nutzlast der Artefakte übergeben wurde, noch nicht im System gefunden wurde. Nein

    Ihre Anforderung zur Paketregistrierung ist aus folgendem Grund ausstehend:

    Artefaktversion nicht gefunden (Name = TestArtifact, Version = 2.5, Repository-Name = Test-Repository, Pipeline-Name = Test-Pipeline, Phasenname = Paket, Aufgabenausführungsnummer = 18).

    Artefaktanzahl: 1 von 2

    create_package VERSION_NOT_FOUND Während eines Aufrufs zur Paketregistrierung, wenn die Artefaktversion nicht in der Artefaktnutzlast übergeben wird, aber entweder eine taskExecutionSysId oder (pipelineName, stageName, taskExecutionNumber) enthält, die zum Suchen des Aufgabenausführungsdatensatzes verwendet werden kann, der in diesem Fall gefunden wird und nachbearbeitet, ist jedoch kein Artefaktversionsdatensatz zugeordnet. Nein

    Ihre Anforderung zur Paketregistrierung ist aus folgendem Grund ausstehend:

    Artefaktversion in Nutzlast nicht verfügbar und mithilfe der Aufgabenausführungsdetails nicht gefunden (Name = TestArtifact, Version = 2.5, Repository-Name = Test-Repo, Pipeline-Name = Test-Pipeline, Phasenname = Paket, Aufgabenausführungsnummer = 18) (TE00012345).

    Artefaktanzahl: 1 von 2

    create_package TASK_EXEC_POST_VERARBEITUNG_AUSSTEHEND Während eines Aufrufs zur Paketregistrierung, wenn die Artefaktversion nicht in der Artefaktnutzlast übergeben wird, aber entweder eine taskExecutionSysId oder (pipelineName, stageName, taskExecutionNumber) enthält, die zum Suchen des Aufgabenausführungsdatensatzes verwendet werden kann, der in diesem Fall gefunden wird aber noch nicht nachverarbeitet. Nein

    Ihre Anforderung zur Paketregistrierung ist aus folgendem Grund ausstehend:

    Artefaktversion in Nutzlast nicht verfügbar, und Aufgabenausführung für Zuordnung gefunden, aber das Kennzeichen für „Nachverarbeitung abgeschlossen“ ist nicht auf „Wahr“ festgelegt (Name=TestArtifact, Version=2.5,RepositoryName=TestRepo, PipelineName=TestPipeline, stageName=Package, taskExecutionNumber=18) (TE00012345 ).

    Artefaktanzahl: 1 von 2

    create_package KEINE_TASK_AUSFÜHRUNG_GEFUNDEN Während eines Aufrufs zur Paketregistrierung, wenn die Artefaktversion nicht in der Artefaktnutzlast übergeben wird, aber entweder eine taskExecutionSysId oder (pipelineName, stageName, taskExecutionNumber) enthält, die zum Suchen des Aufgabenausführungsdatensatzes verwendet werden kann, in diesem Fall n nicht gefunden. Nein

    Ihre Anforderung zur Paketregistrierung ist aus folgendem Grund ausstehend:

    Artefaktversion in Nutzlast nicht verfügbar, und Aufgabenausführung für Zuordnung ebenfalls nicht gefunden (Name = TestArtifact, Version = 2.5, Repository-Name = TestRepo, Pipeline-Name = TestPipeline, Phasenname = Paket, TaskExecutionNumber = 18).

    Artefaktanzahl: 1 von 2

    create_package WARTEN_FÜR_Andere_bereitgestellte_Anforderungen Während eines Aufrufs zur Paketregistrierung, wenn die in der Nutzlast der Artefakte übergebene Artefaktversion im System gefunden wurde, aber warten muss, bis die anderen zugehörigen Staging-Datensätze verarbeitet werden (einschließlich der Datensätze „create_package“ und „create_package_association“). Nein

    Ihre Anforderung zur Paketregistrierung ist aus folgendem Grund ausstehend:

    Artefaktversion gefunden, es muss jedoch auf die verbleibenden Staging-Datensätze für die Paketregistrierung gewartet werden.

    Artefaktanzahl: 1 von 2

    registrieren_artifact TASK_EXEC_POST_VERARBEITUNG_AUSSTEHEND Während eines Aufrufs zur Artefaktregistrierung, wenn die Aufgabenausführung, von der der Aufruf stammt, im System gefunden wird, aber noch nicht nachverarbeitet wurde. Das heißt, das Webhook-Ereignis „Abgeschlossen“ für diese Aufgabenausführung wurde noch nicht verarbeitet. Nein

    Ihre Anforderung zur Artefaktregistrierung ist aus folgendem Grund ausstehend:

    Artefaktversion erstellt und Aufgabenausführung für Zuordnung für Zuordnung gefunden (TE00012345), das Kennzeichen für „Nachverarbeitung abgeschlossen“ ist jedoch nicht auf „Wahr“ gesetzt.

    registrieren_artifact KEINE_TASK_AUSFÜHRUNG_GEFUNDEN Während eines Aufrufs zur Artefaktregistrierung, wenn die Aufgabenausführung, von der der Aufruf stammt, noch nicht im System gefunden wurde. Nein

    Ihre Anforderung zur Artefaktregistrierung ist aus folgendem Grund ausstehend:

    Artefaktversion erstellt, aber Aufgabenausführung für Zuordnung nicht gefunden (pipelineName = TestPipeline, stageName = Paket, taskExecutionNumber = 18).

    registrieren_artifact VERSION_ALREADY_REGISTERED Während eines Aufrufs zur Artefaktregistrierung, wenn die Artefaktversion, die in der Nutzlast der Artefakte für ein bestimmtes Artefakt und Repository bereitgestellt wird, bereits im System vorhanden ist. Ja (ignoriert)

    Ihre Anforderung zur Artefaktregistrierung wurde aus folgendem Grund ignoriert:

    Artefaktversion wurde bereits registriert.

    registrieren_artifact KEIN_SUBFLOW_KONFIGURIERT Während eines Aufrufs zur Artefaktregistrierung, wenn die Artefaktversion nicht in der Artefaktnutzlast bereitgestellt wird und der Webhook und der Such-Subflow den Artefaktversionsdatensatz nicht finden sollen. Ja (ignoriert)

    Ihre Anforderung zur Artefaktregistrierung wurde aus folgendem Grund ignoriert:

    Artefaktversion in Nutzlast nicht verfügbar. Webhook und Such-Subflow sind nicht verfügbar.

    registrieren_artifact KEINE_TASK_AUSFÜHRUNG_GEFUNDEN Während eines Aufrufs zur Artefaktregistrierung, wenn die Artefaktversion nicht in der Nutzlast der Artefakte angegeben wird, der Webhook jedoch unterstützt wird und der Artefaktversionsdatensatz gefunden werden kann, die Aufgabenausführung, von der der Aufruf stammt, jedoch noch nicht im System gefunden wurde. Nein

    Ihre Anforderung zur Artefaktregistrierung ist aus folgendem Grund ausstehend:

    Artefaktversion über Webhook gefunden, aber Aufgabenausführung für Zuordnung nicht gefunden (pipelineName = TestPipeline, stageName = Paket, taskExecutionNumber = 18).

    registrieren_artifact TASK_EXEC_POST_VERARBEITUNG_AUSSTEHEND Während eines Aufrufs zur Artefaktregistrierung, wenn die Artefaktversion nicht in der Nutzlast der Artefakte angegeben wird, aber der Webhook unterstützt wird und der Artefaktversionsdatensatz gefunden werden kann und die Aufgabenausführung, von der der Aufruf stammt, im System zu finden ist, aber nicht wurde bereits nachverarbeitet. Das heißt, das Webhook-Ereignis „Abgeschlossen“ für diese Aufgabenausführung wurde noch nicht verarbeitet. Nein

    Ihre Anforderung zur Artefaktregistrierung ist aus folgendem Grund ausstehend:

    Artefaktversion über Webhook gefunden und Aufgabenausführung für Zuordnung gefunden (TE00012345), das Kennzeichen für „Nachverarbeitung abgeschlossen“ ist jedoch nicht auf „wahr“ gesetzt.

    registrieren_artifact KEINE_TASK_AUSFÜHRUNG_GEFUNDEN Während eines Aufrufs zur Artefaktregistrierung, wenn die Artefaktversion nicht in der Artefaktnutzlast angegeben wird, der Such-Subflow jedoch unterstützt wird und der Artefaktversionsdatensatz gefunden werden kann, die Aufgabenausführung, von der der Aufruf stammt, jedoch noch nicht in gefunden wurde des Systems. Nein

    Ihre Anforderung zur Artefaktregistrierung ist aus folgendem Grund ausstehend:

    Artefaktversion über Suche gefunden, aber Aufgabenausführung für Zuordnung nicht gefunden (pipelineName = TestPipeline, stageName = Paket, taskExecutionNumber = 18).

    registrieren_artifact TASK_EXEC_POST_VERARBEITUNG_AUSSTEHEND Während eines Aufrufs zur Artefaktregistrierung, wenn die Artefaktversion nicht in der Artefaktnutzlast angegeben wird, der Such-Subflow jedoch unterstützt wird und der Artefaktversionsdatensatz gefunden werden kann und die Aufgabenausführung, von der der Aufruf stammt, im System zu finden ist, aber wurde noch nicht nachverarbeitet. Das heißt, das Webhook-Ereignis „Abgeschlossen“ für diese Aufgabenausführung wurde noch nicht verarbeitet. Nein

    Ihre Anforderung zur Artefaktregistrierung ist aus folgendem Grund ausstehend:

    Artefaktversion über Suche gefunden und Aufgabenausführung für Zuordnung gefunden (TE00012345), das Kennzeichen für „Nachverarbeitung abgeschlossen“ ist jedoch nicht auf „Wahr“ gesetzt.

    registrieren_artifact ERROR_CALLING_SUBFLOW Während eines Aufrufs zur Artefaktregistrierung, wenn die Artefaktversion nicht in der Artefaktnutzlast bereitgestellt wird und der Such-Subflow unterstützt wird, die Artefaktversion jedoch nicht gefunden wurde. Ja (ignoriert)

    Ihre Anforderung zur Artefaktregistrierung wurde aus folgendem Grund ignoriert:

    Die Artefaktversion wurde vom Such-Subflow nicht gefunden.

    registrieren_artifact ERROR_CALLING_SUBFLOW Während eines Aufrufs zur Artefaktregistrierung, wenn die Artefaktversion nicht in der Artefaktnutzlast angegeben ist und der Such-Subflow unterstützt wird, die Artefaktversion jedoch aufgrund eines Fehlers im Subflow nicht gefunden werden konnte. Ja (ignoriert)

    Ihre Anforderung zur Artefaktregistrierung wurde aus folgendem Grund ignoriert:

    Die Artefaktversion wurde aufgrund eines Fehlers durch den Such-Subflow nicht gefunden (weitere Details finden Sie in den DevOps-Protokollen).

    registrieren_artifact ERROR_CALLING_SUBFLOW Während eines Aufrufs zur Artefaktregistrierung, wenn die Artefaktversion nicht in der Artefaktnutzlast angegeben ist und der Such-Subflow unterstützt wird, jedoch nicht ausgeführt wurde, da der übergeordnete Artefaktdatensatz im System nicht gefunden wurde. Ja (ignoriert)

    Ihre Anforderung zur Artefaktregistrierung wurde aus folgendem Grund ignoriert:

    Artefaktversion nicht gefunden.