Partager via


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.

Artefact de build publié

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 et Build.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.