Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Azure Pipelines permet aux développeurs de publier des packages sur des flux Azure Artifacts au sein de leur organisation, de les alimenter dans d’autres organisations et des registres publics tels que nuget.org. Cet article explique comment publier des packages NuGet sur des flux internes et externes à l’aide de pipelines Classic et YAML.
Prerequisites
| Produit | Exigences |
|---|---|
| Azure DevOps | - Une organisation Azure DevOps et un projet. - Un flux Azure Artifacts. - Si vous utilisez un agent auto-hébergé, assurez-vous qu’il dispose du Kit de développement logiciel (SDK) .NET Core et de NuGet installés. - Autorisations: - Pour accorder l'accès à tous les pipelines du projet, vous devez être membre du groupe Administrateurs du projet. - Pour créer des connexions de service, vous devez avoir le rôle d'administrateur ou de créateur de connexions de service. |
Note
Si vous utilisez Ubuntu 24.04 ou version ultérieure, vous devez utiliser la NuGetAuthenticate tâche avec l’interface CLI .NET au lieu de nuget.exe. Consultez la rubrique Prise en charge des nouvelles images hébergées Ubuntu pour plus de détails.
Publier des packages NuGet sur un flux dans la même organisation
Si vous n’avez pas encore de flux, vous pouvez en créer un, sinon suivez ces étapes pour publier votre package NuGet dans un flux au sein de la même organisation :
Connectez-vous à votre azure DevOps, puis accédez à votre projet.
Sélectionnez Pipelines, puis sélectionnez votre définition de pipeline.
Sélectionnez Modifier, puis ajoutez l’extrait de code suivant à votre pipeline YAML pour authentifier et publier votre package :
steps: - task: NuGetToolInstaller@1 # Minimum required NuGet version: 4.8.0.5385+. displayName: 'NuGet Tool Installer' - task: NuGetAuthenticate@1 # Authenticate with Azure Artifacts and other NuGet registries. displayName: 'NuGet Authenticate' - script: | nuget.exe push -Source "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" -ApiKey az $(Build.ArtifactStagingDirectory)\*.nupkg displayName: Push
Connectez-vous à votre azure DevOps, puis accédez à votre projet.
Sélectionnez Pipelines, puis sélectionnez votre définition de pipeline.
Sélectionnez Modifier, puis ajoutez l’extrait de code suivant à votre pipeline YAML pour authentifier et publier votre package :
steps: - task: NuGetToolInstaller@1 # Minimum required NuGet version: 4.8.0.5385+. displayName: 'NuGet Tool Installer' - task: NuGetAuthenticate@1 displayName: 'NuGet Authenticate' - script: | nuget.exe push -Source "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" -ApiKey az $(Build.ArtifactStagingDirectory)\*.nupkg displayName: Push
Note
Pour publier des packages sur un flux à l’aide d’Azure Pipelines, assurez-vous que le service de génération de la collection de projets et les identités du service de génération de votre projet ont le rôle Feed Publisher (Contributeur) attribué dans vos paramètres de flux. Consultez la section Gérer les permissions pour plus de détails.
Publier des packages NuGet sur un flux dans une autre organisation
Pour publier vos packages NuGet dans un flux dans une autre organisation Azure DevOps, vous devez d’abord créer un jeton d’accès personnel (PAT) dans l’organisation cible, puis créer une connexion de service dans l’organisation où votre pipeline s’exécute. Vous pouvez ensuite utiliser la connexion de service dans votre pipeline YAML ou Classic pour authentifier et publier vos packages.
1. Créer un jeton d’accès personnel
Connectez-vous à l’organisation Azure DevOps qui héberge votre flux cible.
Accédez à Paramètres utilisateur>Jetons d’accès personnels.
Sélectionnez Nouveau jeton, fournissez un nom descriptif, puis, sous Permissions, sélectionnez Packaging>Lecture et écriture.
Sélectionnez Créer lorsque vous avez terminé, puis copiez et stockez votre PAT dans un emplacement sécurisé, car vous en aurez besoin pour configurer la connexion de service suivante.
2. Créer une connexion de service
Connectez-vous à l’organisation Azure DevOps où votre pipeline s’exécutera, puis accédez à votre projet.
Accédez aux Paramètres du projet>Connexions de service.
Sélectionnez Nouvelle connexion de service, sélectionnez NuGet, puis sélectionnez Suivant.
Sélectionnez Serveur Azure DevOps externe comme Méthode d’authentification, puis saisissez l’URL du flux cible. Collez le jeton d’accès personnel que vous avez créé précédemment, donnez un nom à votre connexion de service, et cochez Accorder la permission d’accès à tous les pipelines si cela s’applique à votre scénario.
Lorsque vous avez terminé, sélectionnez Enregistrer.
3. Publier votre package
Connectez-vous à votre organisation Azure DevOps, puis accédez à votre projet.
Sélectionnez Pipelines, puis sélectionnez la définition de votre pipeline.
Sélectionnez Modifier, puis ajoutez l’extrait de code suivant à votre pipeline YAML pour authentifier et publier votre package :
- task: NuGetToolInstaller@1 # Minimum required NuGet version: 4.8.0.5385+. displayName: 'NuGet Tool Installer' - task: NuGetAuthenticate@1 inputs: nuGetServiceConnections: <SERVICE_CONNECTION_NAME> - script: | nuget.exe push -Source "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" -ApiKey az $(Build.ArtifactStagingDirectory)\*.nupkg displayName: Push
Connectez-vous à votre organization Azure DevOps, puis accédez à votre projet.
Sélectionnez Pipelines, puis sélectionnez la définition de votre pipeline.
Sélectionnez Modifier, puis ajoutez l’extrait suivant à votre pipeline YAML.
- task: NuGetToolInstaller@1 # Minimum required NuGet version: 4.8.0.5385+. displayName: 'NuGet Tool Installer' - task: NuGetAuthenticate@1 # Authenticate with Azure Artifacts and other NuGet registries. inputs: nuGetServiceConnections: <SERVICE_CONNECTION_NAME> # Name of the service connection used to authenticate with feeds across organizations or public registries. - script: | nuget.exe push -Source "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" -ApiKey az $(Build.ArtifactStagingDirectory)\*.nupkg displayName: Push