Sources d'artefacts dans les pipelines de diffusion classiques

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Avec les pipelines de diffusion classiques, vous pouvez déployer vos artefacts à partir d'un large éventail de sources. À l'aide de l'interface graphique, vous pouvez configurer votre pipeline pour intégrer et consommer des artefacts provenant de divers services. En outre, vous pouvez lier plusieurs artefacts provenant de différentes sources et en désigner un comme source principale en fonction de vos besoins.

Sources d’artefact

Azure Pipelines prend en charge un large éventail de référentiels, de services et de plateformes CI/CD. Lors de la création d’une mise en production, vous pouvez spécifier la version de votre source d’artefact. Par défaut, les mises en production utilisent la dernière version de l’artefact source. Vous pouvez également choisir d’utiliser la dernière build d’une branche spécifique en spécifiant les balises, une version spécifique, ou autoriser l’utilisateur à spécifier la version au moment de la création de la mise en production.

Une capture d'écran qui montre comment ajouter un artefact à un pipeline de publication classique.

Si vous liez plusieurs artefacts, vous pouvez spécifier lequel est la source principale (par défaut). La source d'artefact primaire est utilisée pour définir plusieurs variables prédéfinies et peut également être utilisée pour nommer les versions.

Une capture d'écran montre comment définir un artefact de source primaire.

Les options de la liste déroulante Version par défaut dépendent du type de source de la définition de compilation liée. Les options Specify at the time of release creation, Specific version et Latest sont prises en charge par tous les types de référentiels. Cependant, le Latest from the build pipeline default branch with tags n'est pas pris en charge par les définitions de construction XAML.

Les sections suivantes décrivent comment utiliser les différents types de sources d’artefacts.

Remarque

Lorsque vous utilisez plusieurs sources d’artefacts, le mappage d’une source d’artefact pour déclencher une phase particulière n’est pas pris en charge. Si vous avez besoin de cette fonctionnalité, Azure Pipelines recommande de diviser votre pipeline de versions en plusieurs versions.

Azure Pipelines

Vous pouvez lier votre pipeline de versions classique à n'importe quel artefact de pipeline. En outre, vous pouvez lier plusieurs artefacts et configurer des déclencheurs de déploiement sur plusieurs sources de construction. Cette configuration créera une version chaque fois qu'une nouvelle version sera disponible. Les fonctionnalités suivantes sont disponibles lors de l’utilisation d’Azure Pipelines comme source d’artefact :

Fonctionnalité Description
Déclenchement automatique des mises en production De nouvelles versions peuvent être créées automatiquement lorsqu'un nouvel artefact est disponible (y compris les builds XAML). Pour plus de détails, voir les déclencheurs de la version classique.
Variables d’artefact Un certain nombre de variables d'artefact sont prises en charge pour les artefacts référencés dans une version classique.
Éléments de travail et validations Liez les éléments de travail pour les voir s'afficher dans les détails de la version. Les commits seront affichés si vous utilisez Git ou TFVC.
Téléchargement d’artefacts Par défaut, les artefacts du pipeline sont téléchargés sur l'agent qui exécute le pipeline. Vous pouvez également configurer une étape dans votre phase pour sauter le téléchargement de l'artefact si nécessaire.
Phases de déploiement Le résumé du pipeline répertorie toutes les étapes de déploiement où l'artefact a été déployé.

Remarque

Pour publier votre artefact de pipeline dans un pipeline Classic, vous devez ajouter une tâche PublishPipelineArtifact à votre pipeline. Dans les pipelines YAML, un artefact de dépôt est publié implicitement.

Limiter l’étendue d’autorisation du travail

Par défaut, les versions s'exécutent avec une étendue d'autorisation de travail au niveau de l'organisation, ce qui leur permet d'accéder aux ressources de tous les projets de l'organisation. Ceci est utile pour relier les artefacts du pipeline à partir d'autres projets. Pour restreindre l'accès aux artefacts d'un projet, vous pouvez activer l'option Limiter l'étendue de l'autorisation des travaux au projet actuel pour les pipelines de publication dans les paramètres du projet

Pour définir l’étendue d’autorisation de travail pour l’organisation :

  1. Connectez-vous à votre organisation Azure DevOps.

  2. Sélectionnez Paramètres d'organisation en bas à gauche.

  3. Sélectionnez Pipelines> *Paramètres.

  4. Activez le bouton bascule Limiter l’étendue d’autorisation du travail au projet actuel pour les pipelines de mise en production afin de restreindre l’étendue au projet actuel. Cela est recommandé pour renforcer la sécurité.

    Capture d'écran montrant comment définir l'étendue de l'autorisation de travail pour l'organisation.

Pour définir l’étendue d’autorisation de travail pour un projet spécifique :

  1. Connectez-vous à votre organisation Azure DevOps puis accédez à votre projet.

  2. Sélectionnez Paramètres du projet en bas à gauche.

  3. Sélectionnez Pipelines> *Paramètres.

  4. Activez le bouton bascule Limiter l’étendue d’autorisation du travail au projet actuel pour les pipelines de mise en production afin de restreindre l’étendue au projet actuel. Ce paramètre est recommandé pour renforcer la sécurité de vos pipelines.

    Une capture d'écran montre comment définir l'étendue d'autorisation des travaux pour un projet.

Remarque

Si l'étendue est définie au niveau de l'organisation, elle ne peut pas être modifiée individuellement dans chaque projet.

Remarque

Par défaut, les versions s'exécutent avec une étendue d'autorisation des travaux au niveau de la collection, ce qui leur permet d'accéder aux ressources de tous les projets de la collection.

Azure Repos, GitHub et TFVC

Il existe des scénarios dans lesquels vous pourriez vouloir consommer des artefacts directement à partir de différents contrôles de source sans les faire passer par un pipeline de construction. Par exemple :

  • Développer une application PHP ou JavaScript qui ne nécessite pas de pipeline de construction explicite.

  • Gérer des configurations pour différentes étapes dans différents référentiels de contrôle de version, et consommer ces fichiers de configuration directement dans le cadre du pipeline de déploiement.

  • Gérer l'infrastructure et la configuration en tant que code dans un référentiel de contrôle de version.

Avec Azure Pipelines, vous pouvez configurer plusieurs sources d'artefacts dans un seul pipeline de déploiement. Cela vous permet de lier un pipeline de construction qui produit des binaires d'application et un référentiel de contrôle de version qui stocke des fichiers de configuration, en utilisant les deux ensembles d'artefacts ensemble pendant le déploiement.

Azure Pipelines prend en charge les référentiels Azure Repos, Team Foundation Version Control (TFVC) et GitHub. Vous pouvez lier un pipeline de déploiement à n'importe quel référentiel Git ou TFVC au sein de votre collection de projets, à condition de disposer d'un accès en lecture. Aucune configuration supplémentaire n’est requise lors du déploiement d’artefacts de contrôle de version au sein de la même collection.

Lorsque vous liez un référentiel GitHub et que vous sélectionnez une branche, vous pouvez modifier les propriétés par défaut des types d'artefacts après avoir enregistré l'artefact. Ceci est utile si la branche de la version stable change, garantissant que les versions de livraison continue utilisent la branche correcte pour les nouvelles versions d'artefact. Vous pouvez également spécifier les détails de l'extraction, tels que les sous-modules, l'inclusion des fichiers suivis par Git-LFS et la profondeur de la recherche.

Lorsque vous liez une branche TFVC, vous pouvez spécifier le jeu de modifications à déployer lors de la création de la version.

Les fonctionnalités suivantes sont disponibles lorsque vous utilisez Azure Repos, Git et TFVC comme source d'artefacts :

Fonctionnalité Description
Déclenchement automatique des mises en production De nouvelles versions peuvent être créées automatiquement lorsqu'un nouvel artefact est disponible (y compris les builds XAML). Pour plus d’informations, consultez Déclencheurs de mise en production.
Variables d’artefact Un certain nombre de variables d'artefact sont prises en charge pour les artefacts référencés dans une version classique.
Éléments de travail et validations Liez les éléments de travail pour les voir s'afficher dans les détails de la version. Les commits seront affichés si vous utilisez Git ou TFVC.
Téléchargement d’artefacts Par défaut, les artefacts du pipeline sont téléchargés sur l'agent qui exécute le pipeline. Vous pouvez également configurer une étape dans votre phase pour sauter le téléchargement de l'artefact si nécessaire.

Remarque

Par défaut, les releases s'exécutent avec une étendue d'autorisation de travail au niveau de l'organisation, ce qui leur permet d'accéder aux ressources de tous les projets de l'organisation. Ceci est utile pour relier les artefacts du pipeline à partir d'autres projets. Pour restreindre l'accès aux artefacts d'un projet, activez l'option Limiter le champ d'autorisation des tâches au projet actuel pour les pipelines de diffusion dans les paramètres du projet.

Remarque

Par défaut, les versions s'exécutent avec une étendue d'autorisation de travail au niveau de la collection, ce qui leur permet d'accéder aux ressources de tous les projets de la collection. Ceci est utile pour relier les artefacts du pipeline à partir d'autres projets. Pour restreindre l'accès aux artefacts d'un projet, activez l'option Limiter le champ d'autorisation des tâches au projet actuel pour les pipelines de diffusion dans les paramètres du projet.

Azure Artifacts

Voici quelques-uns des scénarios dans lesquels vous pouvez utiliser Azure Artifacts comme source d’artefact :

  • Le binaire de votre application est publié sur Azure Artifacts, et vous souhaitez consommer le package dans un pipeline de versions.

  • Vous avez besoin de packages supplémentaires stockés dans Azure Artifacts dans le cadre de votre workflow de déploiement.

Lorsque vous utilisez Azure Artifacts dans votre pipeline de publication, vous devez sélectionner le Flux, le Package et la version par défaut pour votre package. Vous pouvez choisir de récupérer la dernière version du package, d'utiliser une version spécifique ou de la spécifier au moment de la création de la version. Lors du déploiement, le package est téléchargé sur l'agent qui exécute votre pipeline.

Les fonctionnalités suivantes sont disponibles lors de l’utilisation d’Azure Pipelines comme source d’artefact :

Fonctionnalité Description
Déclenchement automatique des mises en production De nouvelles versions peuvent être créées automatiquement lorsqu'un nouvel artefact est disponible (y compris les builds XAML). Pour plus d’informations, consultez Déclencheurs de mise en production.
Variables d’artefact Un certain nombre de variables d'artefact sont prises en charge pour les artefacts référencés dans une version classique.
Éléments de travail et validations Liez les éléments de travail pour les voir s'afficher dans les détails de la version. Les commits seront affichés si vous utilisez Git ou TFVC.
Téléchargement d’artefacts Par défaut, les artefacts du pipeline sont téléchargés sur l'agent qui exécute le pipeline. Vous pouvez également configurer une étape dans votre phase pour sauter le téléchargement de l'artefact si nécessaire.

Gestion des instantanés Maven

Lorsque vous utilisez des instantanés Maven, plusieurs versions peuvent être téléchargées simultanément (exemple myApplication-2.1.0.BUILD-20190920.220048-3.jar, myApplication-2.1.0.BUILD-20190820.221046-2.jar, myApplication-2.1.0.BUILD-20190820.220331-1.jar). Il se peut que vous deviez supprimer les anciennes versions et ne conserver que l'artefact le plus récent avant le déploiement.

Exécutez la commande suivante dans une requête PowerShell pour supprimer toutes les copies à l'exception de celle dont la valeur lexicographique est la plus élevée :

Get-Item "myApplication*.jar" | Sort-Object -Descending Name | Select-Object -SkipIndex 0 | Remove-Item

Remarque

Vous pouvez stocker jusqu’à 30 instantanés Maven dans votre flux. Une fois cette limite atteinte, Azure Artifacts supprimera automatiquement les clichés les plus anciens pour ne conserver que les 25 plus récents.

Référentiel de conteneurs Azure et Docker Hub

Quand vous déployez des applications conteneurisées, l’image conteneur est d’abord envoyée (push) à un registre de conteneurs. Vous pouvez ensuite déployer votre image conteneur sur Azure Web App pour conteneurs ou sur un cluster Docker/Kubernetes. Pour ce faire, vous devez d'abord créer une connexion de service pour vous authentifier auprès d'Azure ou de Docker Hub. Voir Connexion au service Docker Registry pour plus de détails.

Les fonctionnalités suivantes sont disponibles lorsque vous utilisez Azure Container Repository ou Docker Hub comme source d'artefact :

Fonctionnalité Description
Déclenchement automatique des mises en production De nouvelles versions peuvent être créées automatiquement lorsqu'un nouvel artefact est disponible (y compris les builds XAML). Pour plus d’informations, consultez Déclencheurs de mise en production.
Variables d’artefact Un certain nombre de variables d'artefact sont prises en charge pour les artefacts référencés dans une version classique.
Éléments de travail et validations Liez les éléments de travail pour les voir s'afficher dans les détails de la version. Les commits seront affichés si vous utilisez Git ou TFVC.
Téléchargement d’artefacts Par défaut, les artefacts du pipeline sont téléchargés sur l'agent qui exécute le pipeline. Vous pouvez également configurer une étape dans votre phase pour sauter le téléchargement de l'artefact si nécessaire.

Jenkins

Pour utiliser des artefacts Jenkins, vous devez créer une connexion de service pour vous authentifier auprès de votre serveur Jenkins. Voir la connexion au service Jenkins pour plus de détails. En outre, votre projet Jenkins doit être configuré avec une action post-construction pour publier vos artefacts.

Les artefacts générés par les builds Jenkins sont généralement propagés aux référentiels de stockage à des fins d’archivage et de partage. Azure Blob Storage est l'un de ces référentiels, vous permettant d'utiliser des projets Jenkins qui publient vers Azure Storage en tant que sources d'artefacts dans un pipeline de publication. Azure Pipelines téléchargera automatiquement ces artefacts depuis Azure vers l'agent qui exécute le pipeline. Dans ce scénario, la connectivité entre l'agent et le serveur Jenkins n'est pas nécessaire, et les agents hébergés par Microsoft peuvent être utilisés sans exposer le serveur Jenkins à l'internet.

Les fonctionnalités suivantes sont disponibles lors de l’utilisation de Jenkins comme source d’artefact :

Fonctionnalité Description
Déclenchement automatique des mises en production De nouvelles versions peuvent être créées automatiquement lorsqu'un nouvel artefact est disponible (y compris les builds XAML). Pour plus d’informations, consultez Déclencheurs de mise en production.
Variables d’artefact Un certain nombre de variables d'artefact sont prises en charge pour les artefacts référencés dans une version classique.
Éléments de travail et validations Liez les éléments de travail pour les voir s'afficher dans les détails de la version. Les commits seront affichés si vous utilisez Git ou TFVC.
Téléchargement d’artefacts Par défaut, les artefacts du pipeline sont téléchargés sur l'agent qui exécute le pipeline. Vous pouvez également configurer une étape dans votre phase pour sauter le téléchargement de l'artefact si nécessaire.

Remarque

Il se peut qu'Azure Pipelines ne soit pas en mesure d'envoyer une requête ping à votre serveur Jenkins s'il se trouve dans un réseau d'entreprise privé. Dans ce cas, vous pouvez intégrer Azure Pipelines à Jenkins en configurant un agent local qui a accès au serveur Jenkins. Bien que les noms de vos projets Jenkins ne s'affichent pas lors de la création d'un lien vers un pipeline, vous pouvez saisir manuellement le nom du projet dans le champ de texte de l'URL.

Alias de la source de l'artefact

Pour garantir l'unicité de chaque téléchargement d'artefact, chaque source d'artefact liée à un pipeline de diffusion se voit automatiquement attribuer un emplacement de téléchargement spécifique appelé alias de source. Cet emplacement est accessible à l’aide de la variable : $(System.DefaultWorkingDirectory)\[source alias].

L'utilisation d'alias de source garantit que le renommage d'une source d'artefact liée ne nécessite pas de modifier les propriétés de la tâche, car l'emplacement de téléchargement défini dans l'agent reste inchangé.

Par défaut, l'alias de source est le nom de la source d'artefact précédé d'un trait de soulignement (par exemple, _mslearn-tailspin-spacegame-web). L'alias de source peut correspondre au nom du pipeline de construction, au nom du travail, au nom du projet ou au nom du référentiel, selon le type de source d'artefact. Vous pouvez modifier l'alias de source à partir de l'onglet des artefacts de votre pipeline de mise en production.

Téléchargement d’artefacts

Lorsqu'un déploiement vers une étape est terminé, les artefacts versionnés de chaque source sont téléchargés vers l'agent du pipeline afin que les tâches au sein de cette étape puissent y accéder. Ces artefacts téléchargés ne sont pas supprimés lorsqu'une version est terminée. Cependant, lorsqu'une nouvelle version est lancée, les artefacts précédents sont supprimés et remplacés par les nouveaux.

Un dossier unique est créé sur l'agent pour chaque pipeline de diffusion lorsqu'une diffusion est lancée, et les artefacts sont téléchargés dans ce dossier : $(System.DefaultWorkingDirectory).

Azure Pipelines n’effectue aucune optimisation pour éviter de télécharger les artefacts inchangés si la même version est redéployé. En outre, étant donné que les contenus précédemment téléchargés sont supprimés lorsqu'une nouvelle version est lancée, Azure Pipelines ne peut pas effectuer de téléchargements incrémentiels sur l'agent.

Pour ignorer les téléchargements automatiques d'artefacts, accédez à votre Pipe-line de publication>Tâches>Tâche de l'agent>Téléchargement d'artefacts et décochez tous les artefacts ou spécifiez des artefacts particuliers à ignorer.

Une capture d'écran qui montre comment ignorer le téléchargement automatique des artefacts dans un pipeline de publication classique sur Azure DevOps Services.

Pour ne pas télécharger automatiquement les artefacts, accédez à votre Pipe-line de publication>Tâches>Tâche de l'agent>Options supplémentaires, et cochez la case Ne pas télécharger les artefacts.

Une capture d'écran qui montre comment ignorer le téléchargement automatique d'artefacts dans un pipeline de version classique sur Azure DevOps Server.