Publier et télécharger des packages universels avec Azure Pipelines

Azure DevOps Services

Les packages universels vous permettent de mettre en package un nombre quelconque de fichiers de tout type et de les partager avec votre équipe. À l’aide de la tâche Universal Package dans Azure Pipelines, vous pouvez empaqueter, publier et télécharger des packages de différentes tailles, jusqu’à 4 To. Chaque package est identifié de manière unique par un nom et un numéro de version. Vous pouvez utiliser Azure CLI ou Azure Pipelines pour publier et consommer des packages à partir de vos flux Artifacts.

Notes

Les packages universels sont disponibles uniquement dans Azure DevOps Services.

Copie des fichiers

La tâche Universal Packages dans Azure Pipelines est configurée pour utiliser $(Build.ArtifactStagingDirectory) comme répertoire de publication par défaut. Pour préparer votre package universel pour la publication, déplacez les fichiers que vous souhaitez publier dans ce répertoire. Vous pouvez également utiliser la tâche d’utilitaire Copier des fichiers pour copier ces fichiers dans le répertoire de publication.

Publier un package universel

Pour publier un package universel dans votre flux Azure Artifacts, ajoutez la tâche suivante au fichier YAML de votre pipeline.

- task: UniversalPackages@0
  displayName: Publish a Universal Package
  inputs:
    command: publish
    publishDirectory: '$(Build.ArtifactStagingDirectory)'
    vstsFeedPublish: '<projectName>/<feedName>'
    vstsFeedPackagePublish: '<Package name>'
    packagePublishDescription: '<Package description>'
Argument Description
publishDirectory Emplacement des fichiers que vous souhaitez publier.
vstsFeedPublish Le nom du projet et du flux sur lesquels publier. Si vous utilisez un flux à l’échelle de l’organisation, spécifiez uniquement le nom du flux.
vstsFeedPackagePublish Nom du package. Doit être en minuscules. Utilisez uniquement des lettres, des chiffres et des tirets.
packagePublishDescription Description du contenu du package.

Pour publier des packages sur un flux Azure Artifacts à partir de votre pipeline, l’identité du pipeline doit avoir le rôle Éditeur de flux (Contributeur) sur le flux. Pour plus d’informations, consultez Autorisations des pipelines.

Pour publier sur un flux externe, vous devez d’abord créer une connexion de service pour vous authentifier auprès de votre flux. Pour plus d’informations, veuillez consulter la section Gérer la connexion au service.

Contrôle de version des packages

Les packages universels suivent la spécification sémantique de contrôle de version et peuvent être identifiés par leurs noms et numéros de version. Les numéros de version sémantique sont composés de trois composants numériques, Principal, Mineur et Correctif, au format : Major.Minor.Patch.

Le numéro de version mineure est incrémenté lorsque de nouvelles fonctionnalités qui sont rétrocompatibles avec les versions précédentes sont ajoutées, dans ce cas, vous incrémentez la version mineure et réinitialisez la version du correctif à 0 (1.4.17 à 1.5.0). Le numéro de version principale est incrémenté lorsqu’il existe des modifications significatives susceptibles d’interrompre la compatibilité avec les versions précédentes. Dans ce cas, vous incrémentez la version principale et réinitialisez les versions mineures et correctives à 0 (2.6.5 à 3.0.0). Le numéro de version du correctif doit être incrémenté lorsque seules des corrections de bogues ou d’autres modifications mineures sont apportées, n’affectant pas la compatibilité avec les versions précédentes (1.0.0 à 1.0.1).

Lors de la publication d’un nouveau package, la tâche Packages universels sélectionne automatiquement la version principale, mineure ou corrective suivante pour vous.

Pour activer le contrôle de version pour votre package, ajoutez une entrée versionOption à votre fichier YAML. Les options de publication d’une nouvelle version de package sont les suivantes : major, minor, patch ou custom.

Sélectionner custom vous permet de spécifier manuellement la version de votre package. Les autres options permettent d’obtenir la dernière version du package à partir de votre flux et d’incrémenter le segment de version choisi de 1. Par conséquent, si vous avez un testPackage 1.0.0et sélectionnez l’option principale, votre nouveau package sera testPackage 2.0.0. Si vous sélectionnez l’option mineur, la version de votre package est 1.1.0et, si vous sélectionnez l’option correctif, la version de votre package est 1.0.1.

Si vous choisissez l’option custom, vous devez également spécifier une valeur versionPublish comme suit :

- task: UniversalPackages@0
  displayName: Publish a Universal Package
  inputs:
    command: publish
    publishDirectory: '$(Build.ArtifactStagingDirectory)'
    vstsFeedPublish: '<projectName>/<feedName>'
    vstsFeedPackagePublish: '<Package name>'
    versionOption: custom
    versionPublish: '<Package version>'
    packagePublishDescription: '<Package description>'
Argument Description
publishDirectory Emplacement des fichiers que vous souhaitez publier.
vstsFeedPublish Le nom du projet et du flux sur lesquels publier. Si vous utilisez un flux à l’échelle de l’organisation, spécifiez uniquement le nom du flux.
vstsFeedPackagePublish Nom du package. Doit être en minuscules. Utilisez uniquement des lettres, des chiffres et des tirets.
versionOption Sélectionnez une stratégie de contrôle de version. Options : major, minor, patch, custom.
versionPublish La version du package personnalisé.
packagePublishDescription Description du contenu du package.

Télécharger un package universel

Pour télécharger un package universel à partir d’un flux dans votre organisation, utilisez la tâche package universel avec la commande download comme suit :

steps:
- task: UniversalPackages@0
  displayName: Download a Universal Package
  inputs:
    command: download
    vstsFeed: '<projectName>/<feedName>'
    vstsFeedPackage: '<packageName>'
    vstsPackageVersion: '<packageVersion>'
    downloadDirectory: '$(Build.SourcesDirectory)\someFolder'
Argument Description
vstsFeed Le flux Artifacts hébergeant le package à télécharger.
vstsFeedPackage Nom du package à télécharger.
vstsPackageVersion Version du package à télécharger.
downloadDirectory Le dossier de destination du package. Valeur par défaut : $(System.DefaultWorkingDirectory).

Pour télécharger un package universel à partir d’une source externe, utilisez l’extrait de code suivant :

steps:
- task: UniversalPackages@0
  displayName: Download a Universal Package
  inputs:
    command: download
    feedsToUse: external
    externalFeedCredentials: 'MSENG2'
    feedDownloadExternal: 'fabrikamFeedExternal'
    packageDownloadExternal: 'fabrikam-package'
    versionDownloadExternal: 1.0.0
Argument Description
feedsToUse Définissez la valeur sur external si vous téléchargez à partir d'une source externe.
externalFeedCredentials Nom de la connexion de service au flux externe. Pour plus d’informations, veuillez consulter la section Gérer des connexions de service.
feedDownloadExternal Nom du flux externe.
packageDownloadExternal Nom du package que vous souhaitez télécharger.
versionDownloadExternal Version du package que vous souhaitez télécharger.

Conseil

Vous pouvez utiliser des caractères génériques pour télécharger la dernière version d’un package universel. Pour plus d’informations, consulter Télécharger la dernière version.