Publier et télécharger des artefacts de build
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Remarque
Nous vous recommandons d’utiliser Télécharger les artefacts de pipeline et Publier des artefacts de pipeline pour des performances plus rapides.
Azure Artifacts permet aux équipes d’utiliser des flux et des sources amont pour gérer leurs dépendances. Vous pouvez utiliser Azure Pipelines pour publier et télécharger différents types d’artefacts dans le cadre de votre flux de travail CI/CD.
Publier des artefacts
Les artefacts peuvent être publiés à n’importe quel stade de votre pipeline. Vous pouvez utiliser YAML ou l’éditeur Azure DevOps classique pour publier vos packages.
- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt
- task: CopyFiles@2
inputs:
sourceFolder: '$(Build.SourcesDirectory)'
contents: '**/$(BuildConfiguration)/**/?(*.exe|*.dll|*.pdb)'
targetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: drop
- pathToPublish : chemin d’accès de votre artefact. Il peut s’agir d’un chemin d’accès absolu ou relatif. Les caractères génériques ne sont pas pris en charge.
- artifactName : nom de votre artefact.
Remarque
Vérifiez que vous n’utilisez pas l’un des noms de dossiers réservés lors de la publication de votre artefact. Pour plus d’informations, consultez Dossiers d’applications.
Exemple : utiliser plusieurs tâches
- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt
- task: CopyFiles@2
inputs:
sourceFolder: '$(Build.SourcesDirectory)'
contents: '**/$(BuildConfiguration)/**/?(*.exe|*.dll|*.pdb)'
targetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: drop1
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: drop2
- pathToPublish : chemin d’accès de votre artefact. Il peut s’agir d’un chemin d’accès absolu ou relatif. Les caractères génériques ne sont pas pris en charge.
- artifactName : nom de votre artefact.
Exemple : copier et publier des fichiers binaires
- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt
- task: CopyFiles@2
inputs:
sourceFolder: '$(Build.SourcesDirectory)'
contents: '**/$(BuildConfiguration)/**/?(*.exe|*.dll|*.pdb)'
targetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: drop
- sourceFolder : ouvrez le dossier qui contient les fichiers que vous voulez copier. Si vous laissez ce champ vide, la copie est effectuée à partir de $(Build.SourcesDirectory).
- contenu : chemins d’accès aux fichiers à inclure dans le cadre de la copie.
- targetFolder : dossier de destination.
- pathToPublish : chemin d’accès au dossier ou au fichier à publier. Il peut s’agir d’un chemin d’accès absolu ou relatif. Les caractères génériques ne sont pas pris en charge.
- artifactName : nom de l’artefact que vous souhaitez créer.
Notes
Veillez à ne pas utiliser de nom réservé pour artifactName, tel que Bin ou App_Data. Pour plus d’informations, consultez structure de dossiers de projet web ASP.NET.
Remarque
Le chemin d’accès Build.ArtifactStagingDirectory
est nettoyé après chaque build. Si vous utilisez ce chemin pour publier votre artefact, assurez-vous de copier le contenu que vous souhaitez publier dans ce répertoire avant l’étape de publication.
Télécharger des artefacts
- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'current'
downloadType: 'single'
artifactName: 'drop'
downloadPath: '$(System.ArtifactsDirectory)'
- buildType : spécifiez les artefacts de build qui seront téléchargés :
current
(valeur par défaut) ou à partir d’une build spécifique. - downloadType : choisissez si vous souhaitez télécharger un seul artefact ou tous les artefacts d’une build spécifique.
- artifactName : nom de l’artefact qui sera téléchargé.
- downloadPath : chemin d’accès sur la machine de l’agent sur lequel les artefacts seront téléchargés.
Remarque
Si vous utilisez une tâche de déploiement, vous pouvez référencer vos artefacts de build à l’aide de $(Agent.BuildDirectory). Pour plus d’informations, consultez Variables de l’agent.
Une fois l’exécution de votre pipeline terminée, accédez à Résumé pour explorer ou télécharger votre artefact.
Télécharger un artefact spécifique
steps:
- task: DownloadBuildArtifacts@1
displayName: 'Download Build Artifacts'
inputs:
buildType: specific
project: 'xxxxxxxxxx-xxxx-xxxx-xxxxxxxxxxx'
pipeline: 20
buildVersionToDownload: specific
buildId: 128
artifactName: drop
extractTars: false
Conseils
Désactivez l’authentification de base IIS si vous utilisez Azure DevOps Server pour autoriser l’authentification avec votre jeton d’accès personnel. Pour plus d’informations, consultez Authentification de base et PAT IIS.
Utilisez des barres obliques dans les arguments de chemin d’accès de fichier. Les barres obliques inverses ne fonctionnent pas dans les agents macOS/Linux.
Les artefacts de build sont stockés sur un système de fichiers Windows, ce qui entraîne la perte de toutes les autorisations UNIX, y compris le bit d’exécution. Vous devrez peut-être restaurer les autorisations UNIX appropriées après avoir téléchargé vos artefacts à partir d’Azure Pipelines.
Build.ArtifactStagingDirectory
etBuild.StagingDirectory
sont interchangeables.Le chemin d’accès
Build.ArtifactStagingDirectory
est nettoyé après chaque build.La suppression d’une build associée à des packages publiés sur un partage de fichiers entraîne la suppression de tous les artefacts dans ce chemin d’accès UNC.
Si vous publiez vos packages sur un partage de fichiers, veillez à fournir l’accès à l’agent de build.
Veillez à autoriser les URL et les adresses IP du domaine Azure Artifacts si votre organisation utilise un pare-feu.