Artefakte und Pakete
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.
- Kategorie DevOps oder das Kontrollkästchen DevOps-Change-Anforderungen bei „DevOps-Change“ kategorisieren – ist in den Eigenschaften DevOps ausgewählt. Weitere Informationen finden Sie unter DevOps Change-Anforderung, ohne die Kategorie als vorzuschreiben DevOps.
- Zugehörige Listen „Commits“ und „Arbeitselemente“.
Pakete
- 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.
- 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
- 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.
- Registrieren Sie Artefakte in der CI-Pipeline.
- 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.
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
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"}""")
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.
Sie können auch alle vorhandenen Pipeline-Change-Anforderungen direkt im Modul Changes im Anwendungsnavigator anzeigen.
Sie können alle vorhandenen Change-Steuerungs- und Pipeline-Change-Anforderungen direkt im Changes- Modul im Anwendungsnavigator anzeigen.
Navigieren zu für alle Informationen im Zusammenhang mit Changes.
Pipeline-Change-Anforderungen
Sie können alle vorhandenen Artefakte und Pakete direkt mit dem Listenmodul im Anwendungsnavigator anzeigen.
Navigieren zu für alle Artefakt-bezogenen Informationen.
Ü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.
| 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. |