Artefacts et packages

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 14 minutes de lecture
  • Les artefacts et les packages permettent Vélocité de changement DevOps de suivre les activités de développement et de test sur un large éventail de modèles de déploiement et de mise en production. Cette fonctionnalité garantit que l’activité de pipeline stockée dans le modèle de DevOps données peut être récupérée et appliquée lorsque des artefacts sont créés et publiés à des moments différents ou dans différents pipelines.

    Artefacts

    Lorsqu’une version d’artefact est enregistrée, les activités connexes telles que les validations, les tests et les analyses de code sont suivies de sorte que, quel que soit le moment où la version de l’artefact est déployée, ces détails peuvent être récupérés. Il peut s’agir de l’exécution du pipeline en cours, d’une exécution ultérieure du même pipeline, d’un pipeline déclenché par le pipeline actuel ou d’un pipeline distinct déclenché indépendamment.

    Lorsque vous associez des validations à une version d’artefact (pipeline CI) et définissez un package d’artefact (pipeline CD), toutes les versions d’artefacts générées depuis le dernier déploiement de l’application vers la production sont incluses dans la liste des validations pour le changement. La consolidation de ces éléments est utile, en particulier lorsqu’il existe plusieurs versions de CI avant le déploiement.

    DevOps Attributs de demande de changement :

    Paquets

    Un package effectue le suivi de l’utilisation d’une ou plusieurs versions d’artefact dans un pipeline de déploiement. Cela offre deux avantages importants :
    1. Récupération des activités pour toutes les versions d’artefacts déclarées dans le package. Par exemple, pour une utilisation dans une politique d’approbation de changement automatisée.
    2. Enregistrement de la mise en production réussie d’une version d’artefact spécifiée, garantissant que les informations qui lui sont associées ne sont plus prises en compte. Par exemple, pour les demandes de changement ultérieures.

    Configuration de l’artefact

    1. Créez un enregistrement d’outil d’artefact dans DevOps.
      Remarque :
      Un outil d’artefact n’est pas nécessaire à moins qu’une configuration de webhook ou de flux secondaire d’intégration créée par l’utilisateur soit requise pour rechercher les versions d’artefact.
    2. Enregistrez les artefacts dans le pipeline de CI.
    3. Créez un package dans le pipeline CD.
      Remarque :
      L’étape de création de package doit être antérieure à l’étape Déploiement produit.

    Inscription de l’artefact

    Configurez l’enregistrement des artefacts dans un pipeline scripté ou une tâche Freestyle à l’aide du point de terminaison API DevOps /artifact/registration. Plusieurs versions d’artefacts sont prises en charge.

    Pour Jenkins le pipeline :
    • Pipeline scripté et déclaratif (commande Jenkinsfile snDevOpsArtifact )

      Par exemple :
      snDevOpsArtifact(artifactsPayload: """{"artifacts": [{"name": "sa-web.jar", "version": "1.9","semanticVersion": "1.9.0","repositoryName": "services-1031"}], "branchName": "master"}""")
    • Tâche Freestyle (enregistrer l’artefact étape de build)

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

    Création de package d’artefact

    Important :
    Vous devez ajouter l’étape de création de package avant l’étape de changement dans votre pipeline, et la création de package doit être ajoutée à une étape antérieure à l’étape de changement, afin que les packages soient liés à l’exécution du pipeline pour une demande de changement.
    Configurez la création de packages d’artefacts dans un pipeline scripté ou une tâche Freestyle à l’aide du point de terminaison API DevOps /package/registration .
    Remarque :
    Le nom du package doit être spécifié.
    Pour Jenkins le pipeline :
    • Tâche Freestyle (étape Créer une version de package )

      Par exemple :

      {"artifacts":[{"name":"sentiment-analysis-web2","version":"1.9","repositoryName":"maven-releases"}]}
    • Pipeline déclaratif et scripté (commande Jenkinsfile snDevOpsPackage )

      Package avec plusieurs artefacts (provenant de référentiels différents) dans la charge utile, par exemple :
      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"}""")

      Package d’accélération du changement DevOps pour les versions

    Remarque :
    Lorsqu’une version d’artefact n’est pas disponible pendant la version, les détails de la version (pipelineName ou projectName, taskExecutionNumber, stageName, branchName) sont utilisés pour rechercher la version de l’artefact dans l’exécution de la tâche.

    Jenkins étape du module d’extension includeBuildInfo peut être utilisée pour inclure les détails de la version dans l’appel d’API.

    Workflow et objets de l’artefact

    La tâche de l’outil d’orchestration publie le nouvel artefact (composé de versions) dans le référentiel de l’artefact. Chaque version d’artefact est associée à une exécution de tâche (comprenant les validations de code connexes). Un package est créé pour la mise en production (composé de versions d’artefacts spécifiques marquées pour le déploiement) et, une fois l’étape de déploiement terminée, le package est marqué comme déployé vers la production.

    Ces objets font partie de la structure de l’artefact.

    • Outil d'artefact

      Utilisé pour prendre en charge les gestionnaires de référentiels d’artefacts tels qu’Artifactory JFrog .

      Remarque :
      Un outil d’artefact n’est pas nécessaire à moins qu’une configuration de webhook ou de flux secondaire d’intégration créée par l’utilisateur soit requise pour rechercher les versions d’artefact.
    • Référentiel de l'artefact

      Cible des artefacts générés dans une version, ainsi qu’une source d’artefacts requis par une version. Peut être créé manuellement ou via l’API RegisterArtifact lorsque de nouveaux artefacts sont publiés sous de nouveaux référentiels dans un outil.

    • Artefact

      Nom de l’artefact pour lequel différentes versions (versions d’artefacts) sont générées. Peut être créé manuellement ou via l’API RegisterArtifact. Les artefacts (versions) sont associés à l’exécution d’une tâche et publiés dans un référentiel d’artefacts.

    • Version de l'artefact

      Version spécifique de l’artefact. Composant déployable d’une application généré par une version CI. Lorsqu’elle est fournie, une version sémantique est utilisée.

      Peut être créé via la découverte ou via l’API RegisterArtifact. Les artefacts (versions) sont associés à l’exécution d’une tâche et publiés dans un référentiel d’artefacts suivi.

    • Version sémantique

      Attribut facultatif d’une version d’artefact qui, lorsqu’il est fourni, est utilisé pour déterminer les validations d’un changement. Le format de version sémantique est (MAJOR. MINEUR. PATCH).

    • Package

      Collection des versions d’artefacts utilisées comme entrée dans un pipeline de CD ou pour associer des résultats de tests.

      La création de package est déclenchée par l’appel d’API CreatePackage à partir de l’outil d’orchestration et contient le nom, la version et le nom de référentiel de toutes les versions d’artefacts incluses dans le package. Une case à cocher indique si le package a été déployé vers la production.

    DevOps Accélération du changement pour les mises en production :
    Figure 1. DevOps Demande de changement : catégorie DevOps
    Demande de changement DevOps.
    Figure 2. DevOps Demande de changement : validations et éléments de travail
    Validations des demandes de changement DevOps.
    Figure 3. DevOps Liste des versions d’artefacts
    Liste des versions d’artefacts DevOps.
    Figure 4. DevOps Version de l’artefact : validations
    Validations d’artefacts DevOps.
    Figure 5. DevOps Version de l’artefact : packages
    Packages d’artefacts DevOps.
    Figure 6. DevOps colis
    Package DevOps.

    Vous pouvez également consulter toutes les demandes de changement de pipeline existantes directement à partir du module Changements dans le navigateur d’application.

    Figure 7. Module Changements

    Vous pouvez afficher toutes les demandes de contrôle des changements et de changement de pipeline existantes directement à l’aide du module Changements du navigateur d’application.

    Accédez à la Espace de travail de changement DevOps > Changements > Demandes de changement de pipeline > Tous pour toutes les informations relatives au changement.

    Demandes de changement de pipeline

    Demandes de changement de pipeline.
    Figure 8. Module de liste

    Vous pouvez voir tous les artefacts et packages existants directement à l’aide du module Liste du navigateur d’application.

    Accédez à la Espace de travail de changement DevOps > Listes > Artefact pour toutes les informations relatives aux artefacts.

    Liste des artefacts et des packages.

    Surveillance des artefacts et des packages

    Lorsque des artefacts et des packages sont enregistrés à partir d’un outil source dans ServiceNow, ils sont souvent placés dans la table, tandis que les données restantes nécessaires à la création et à la sn_devops_artifact_staging liaison de ces objets sont soit reçues à partir d’événements entrants, soit récupérées par DevOps les flux.

    La plupart du temps, ces enregistrements intermédiaires sont traités en quelques secondes. Mais il peut y avoir des cas où les données nécessaires ne sont jamais reçues, de sorte que ces enregistrements peuvent être laissés inactifs. Le champ Description de la table ci-dessous contient un résumé des détails manquants dans de tels cas pour faciliter le suivi.

    Remarque :
    Il est recommandé d’avoir des noms d’artefacts uniques pour les versions de mise en production, c’est-à-dire des noms d’artefacts différents pour les versions exécutées sur différentes versions de branche.
    Type de préproduction Code intermédiaire Quand cela peut-il se produire État final ? Description
    create_package_association WAITING_FOR_OTHER_STAGED_REQUESTS Lors d’un appel d’enregistrement de package, lorsque l’exécution de la tâche d’où provient l’appel est détectée dans le système et post-traitée, mais que toutes les versions d’artefacts transmises dans la charge utile des artefacts n’ont pas été trouvées dans le système. Non

    Votre demande d’enregistrement de package est en attente pour le motif suivant :

    Exécution de la tâche trouvée pour l’association (TE00012345) et le marqueur de post-traitement est défini sur vrai, mais toutes les versions de l’artefact n’ont pas été trouvées.

    Nombre total d’artefacts : 2

    create_package_association TASK_EXEC_POST_PROCESSING_PENDING Lors d’un appel d’enregistrement de package, lorsque l’exécution de la tâche à l’origine de l’appel se trouve dans le système, mais n’a pas encore fait l’objet d’un post-traitement. En d’autres termes, l’événement de webhook Terminé pour cette exécution de tâche n’a pas encore été traité. Non

    Votre demande d’enregistrement de package est en attente pour le motif suivant :

    Exécution de la tâche trouvée pour l’association (TE00012345), mais le marqueur de fin du post-traitement n’est pas défini sur vrai.

    Nombre total d’artefacts : 2

    create_package_association NO_TASK_EXECUTION_FOUND Lors d’un appel d’enregistrement de package, lorsque l’exécution de la tâche d’où provient l’appel n’est pas encore trouvée dans le système. Non

    Votre demande d’enregistrement de package est en attente pour le motif suivant :

    Exécution de tâche non trouvée pour l’association (pipelineName=TestPipeline, stageName=Package, taskExecutionNumber=18).

    Nombre total d’artefacts : 2

    create_package VERSION_NOT_FOUND Lors d’un appel d’enregistrement de package, lorsque la version de l’artefact a été transmise, la charge utile des artefacts n’a pas encore été trouvée dans le système. Non

    Votre demande d’enregistrement de package est en attente pour le motif suivant :

    Version de l’artefact non trouvée (name=TestArtifact, version=2.5, repositoryName=TestRepo, pipelineName=TestPipeline, stageName=Package, taskExecutionNumber=18).

    Nombre d’artefacts : 1 sur 2

    create_package VERSION_NOT_FOUND Lors d’un appel d’inscription au package, lorsque la version de l’artefact n’est pas transmise dans la charge utile des artefacts, mais qu’il contient soit un taskExecutionSysId, soit (pipelineName, stageName, taskExecutionNumber) qui peut être utilisé pour rechercher l’enregistrement d’exécution de la tâche, qui dans ce cas est trouvé et post-traité, mais aucun enregistrement de version d’artefact n’est associé. Non

    Votre demande d’enregistrement de package est en attente pour le motif suivant :

    Version de l’artefact non disponible dans la charge utile et non trouvée à l’aide des détails d’exécution de la tâche (name=TestArtifact, version=2.5, repositoryName=TestRepo, pipelineName=TestPipeline, stageName=Package, taskExecutionNumber=18) (TE00012345).

    Nombre d’artefacts : 1 sur 2

    create_package TASK_EXEC_POST_PROCESSING_PENDING Lors d’un appel d’inscription de package, lorsque la version de l’artefact n’est pas transmise dans la charge utile des artefacts, mais qu’il contient soit un taskExecutionSysId, soit (pipelineName, stageName, taskExecutionNumber) qui peut être utilisé pour rechercher l’enregistrement d’exécution de la tâche, qui dans ce cas est trouvé, mais pas encore post-traité. Non

    Votre demande d’enregistrement de package est en attente pour le motif suivant :

    Version de l’artefact non disponible dans la charge utile et exécution de la tâche trouvée pour l’association, mais le marqueur de fin du post-traitement n’est pas défini sur vrai (name=TestArtifact, version=2.5, repositoryName=TestRepo, pipelineName=TestPipeline, stageName=Package, taskExecutionNumber=18) (TE00012345).

    Nombre d’artefacts : 1 sur 2

    create_package NO_TASK_EXECUTION_FOUND Lors d’un appel d’inscription de package, lorsque la version de l’artefact n’est pas transmise dans la charge utile des artefacts, mais qu’il contient soit un taskExecutionSysId, soit (pipelineName, stageName, taskExecutionNumber) qui peut être utilisé pour rechercher l’enregistrement d’exécution de la tâche, qui dans ce cas est introuvable. Non

    Votre demande d’enregistrement de package est en attente pour le motif suivant :

    Version de l’artefact non disponible dans la charge utile et exécution de la tâche également non trouvée pour l’association (name=TestArtifact, version=2.5, repositoryName=TestRepo, pipelineName=TestPipeline, stageName=Package, taskExecutionNumber=18).

    Nombre d’artefacts : 1 sur 2

    create_package WAITING_FOR_OTHER_STAGED_REQUESTS Lors d’un appel d’enregistrement de package, lorsque la version de l’artefact transmise dans la charge utile des artefacts a été trouvée dans le système, mais doit attendre que les autres enregistrements intermédiaires connexes soient traités (y compris les enregistrements create_package ou create_package_association). Non

    Votre demande d’enregistrement de package est en attente pour le motif suivant :

    Version de l'artefact trouvée, mais nécessité d'attendre les enregistrements intermédiaires restants de l'enregistrement du package.

    Nombre d’artefacts : 1 sur 2

    register_artifact TASK_EXEC_POST_PROCESSING_PENDING Lors d’un appel d’inscription d’artefact, lorsque l’exécution de la tâche à l’origine de l’appel se trouve dans le système, mais n’a pas encore fait l’objet d’un post-traitement. C’est-à-dire que l’événement de webhook « Terminé » pour cette exécution de tâche n’a pas encore été traité. Non

    Votre demande d’enregistrement d’artefact est en attente pour le motif suivant :

    Version de l’artefact créée et exécution de la tâche trouvée pour l’association pour l’association (TE00012345), mais le marqueur de fin du post-traitement n’est pas défini sur vrai.

    register_artifact NO_TASK_EXECUTION_FOUND Lors d’un appel d’inscription d’artefact, lorsque l’exécution de la tâche d’où provient l’appel n’est pas encore trouvée dans le système. Non

    Votre demande d’enregistrement d’artefact est en attente pour le motif suivant :

    Version de l’artefact créée, mais exécution de la tâche non trouvée pour l’association (pipelineName=TestPipeline, stageName=Package, taskExecutionNumber=18).

    register_artifact VERSION_ALREADY_REGISTERED Lors d’un appel d’inscription d’artefact, lorsque la version de l’artefact fournie dans la charge utile des artefacts pour un artefact et un référentiel donnés existe déjà dans le système. Oui (ignoré)

    Votre demande d’enregistrement d’artefact a été ignorée pour la raison suivante :

    La version de l'artefact a déjà été enregistrée.

    register_artifact NO_SUBFLOW_CONFIGURED Lors d’un appel d’inscription d’artefact, lorsque la version de l’artefact n’est pas fournie dans la charge utile des artefacts et que le webhook et le flux secondaire de recherche ne permettent pas de trouver l’enregistrement de version de l’artefact. Oui (ignoré)

    Votre demande d’enregistrement d’artefact a été ignorée pour la raison suivante :

    Version de l'artefact non disponible dans la charge utile. Le webhook et le flux secondaire de recherche ne sont pas disponibles.

    register_artifact NO_TASK_EXECUTION_FOUND Lors d’un appel d’inscription d’artefact, lorsque la version de l’artefact n’est pas fournie dans la charge utile des artefacts, mais que le webhook est pris en charge et que l’enregistrement de la version de l’artefact peut être trouvé, mais que l’exécution de la tâche d’où provient l’appel n’est pas encore trouvée dans le système. Non

    Votre demande d’enregistrement d’artefact est en attente pour le motif suivant :

    Version de l’artefact trouvée via le webhook, mais exécution de la tâche non trouvée pour l’association (pipelineName=TestPipeline, stageName=Package, taskExecutionNumber=18).

    register_artifact TASK_EXEC_POST_PROCESSING_PENDING Lors d’un appel d’inscription d’artefact, lorsque la version de l’artefact n’est pas fournie dans la charge utile des artefacts, que le webhook est pris en charge et que l’enregistrement de la version de l’artefact peut être trouvé, et que l’exécution de la tâche d’où provient l’appel se trouve dans le système, mais n’a pas encore été post-traitée. En d’autres termes, l’événement de webhook Terminé pour cette exécution de tâche n’a pas encore été traité. Non

    Votre demande d’enregistrement d’artefact est en attente pour le motif suivant :

    Version de l’artefact trouvée via le webhook et exécution de la tâche trouvée pour l’association (TE00012345), mais le marqueur de fin du post-traitement n’est pas défini sur vrai.

    register_artifact NO_TASK_EXECUTION_FOUND Lors d’un appel d’inscription d’artefact, lorsque la version de l’artefact n’est pas fournie dans la charge utile des artefacts, mais que le flux secondaire de recherche est pris en charge et que l’enregistrement de la version de l’artefact peut être trouvé, mais que l’exécution de la tâche d’où provient l’appel n’est pas encore trouvée dans le système. Non

    Votre demande d’enregistrement d’artefact est en attente pour le motif suivant :

    Version de l’artefact trouvée via la recherche, mais exécution de la tâche non trouvée pour l’association (pipelineName=TestPipeline, stageName=Package, taskExecutionNumber=18).

    register_artifact TASK_EXEC_POST_PROCESSING_PENDING Lors d’un appel d’inscription d’artefact, lorsque la version de l’artefact n’est pas fournie dans la charge utile des artefacts, mais que le flux secondaire de recherche est pris en charge et que l’enregistrement de la version de l’artefact peut être trouvé, et que l’exécution de la tâche d’où provient l’appel se trouve dans le système, mais n’a pas encore été post-traitée. En d’autres termes, l’événement de webhook Terminé pour cette exécution de tâche n’a pas encore été traité. Non

    Votre demande d’enregistrement d’artefact est en attente pour le motif suivant :

    Version de l’artefact trouvée via la recherche et exécution de la tâche trouvée pour l’association (TE00012345), mais le marqueur de fin du post-traitement n’est pas défini sur vrai.

    register_artifact ERROR_CALLING_SUBFLOW Lors d’un appel d’inscription d’artefact, lorsque la version de l’artefact n’est pas fournie dans la charge utile des artefacts et que le flux secondaire de recherche est pris en charge, mais que la version de l’artefact est introuvable. Oui (ignoré)

    Votre demande d’enregistrement d’artefact a été ignorée pour la raison suivante :

    Version de l'artefact non trouvée par le flux secondaire de recherche.

    register_artifact ERROR_CALLING_SUBFLOW Lors d’un appel d’inscription d’artefact, lorsque la version de l’artefact n’est pas fournie dans la charge utile des artefacts et que le flux secondaire de recherche est pris en charge, mais qu’il n’a pas pu trouver la version de l’artefact en raison d’une erreur dans le flux secondaire. Oui (ignoré)

    Votre demande d’enregistrement d’artefact a été ignorée pour la raison suivante :

    Version de l'artefact non trouvée par le flux secondaire de recherche en raison d'une erreur (reportez-vous à Journaux DevOps pour des détails supplémentaires).

    register_artifact ERROR_CALLING_SUBFLOW Lors d’un appel d’inscription d’artefact, lorsque la version de l’artefact n’est pas fournie dans la charge utile des artefacts et que le flux secondaire de recherche est pris en charge, mais n’a pas été exécuté, car l’enregistrement de l’artefact parent est introuvable dans le système. Oui (ignoré)

    Votre demande d’enregistrement d’artefact a été ignorée pour la raison suivante :

    Artefact non trouvé.