Compartir vía


Publicación y descarga de artefactos de compilación

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

Nota:

Se recomienda usar Descargar artefactos de canalización y Publicar artefactos de canalización para un rendimiento más rápido.

Azure Artifacts permite a los equipos usar fuentes y orígenes ascendentes para administrar sus dependencias. Puede usar Azure Pipelines para publicar y descargar diferentes tipos de artefactos como parte del flujo de trabajo de CI/CD.

Publicación de artefactos

Los artefactos se pueden publicar en cualquier fase de la canalización. Puede usar YAML o el editor clásico de Azure DevOps para publicar los paquetes.

- 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: la ruta de acceso del artefacto. Puede ser absoluta o relativa. No se admiten los caracteres comodín.
  • artifactName: el nombre del artefacto.

Nota:

Asegúrese de no usar uno de los nombres de carpeta reservados al publicar el artefacto. Consulte Carpetas de aplicaciones para más información.

Ejemplo: Uso de varias tareas

- 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: la ruta de acceso del artefacto. Puede ser absoluta o relativa. No se admiten los caracteres comodín.
  • artifactName: el nombre del artefacto.

Ejemplo: Copiar y publicar archivos binarios

- 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: la carpeta que contiene los archivos que quiere copiar. Si deja esta opción vacía, la copia se realizará desde $(Build.SourcesDirectory).
  • contents: rutas de acceso de archivo que se van a incluir como parte de la copia.
  • targetFolder: carpeta de destino.
  • pathToPublish: la ruta de acceso de la carpeta o archivo que se va a publicar. Puede ser una ruta de acceso absoluta o relativa. No se admiten los caracteres comodín.
  • artifactName: el nombre del artefacto que quiere crear.

Nota:

Asegúrese de no usar nombres reservados para artifactName, como Bin o App_Data. Consulte Estructura de carpetas de proyecto web de ASP.NET para más información.

Nota:

La ruta de acceso a Build.ArtifactStagingDirectory se limpia después de cada compilación. Si usa esta ruta para publicar el artefacto, asegúrese de copiar el contenido que desea publicar en este directorio antes del paso de publicación.

Descarga de artefactos

- 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: especifique qué artefactos de compilación se descargarán: current (el valor predeterminado) o desde una compilación específica.
  • downloadType: elija si quiere descargar un solo artefacto o todos los artefactos de una compilación específica.
  • artifactName: el nombre del artefacto que se descargará.
  • downloadPath: ruta de acceso en la máquina del agente donde se descargarán los artefactos.

Nota:

Si usa una tarea de implementación, puede hacer referencia a los artefactos de compilación mediante $(Agent.BuildDirectory). Consulte Variables de agente para más información.

Una vez completada la ejecución de la canalización, vaya a Resumen para explorar o descargar el artefacto.

Artefacto de compilación publicado

Descargar un artefacto específico

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

Sugerencias

  • Deshabilite la autenticación básica de IIS si usa Azure DevOps Server para permitir la autenticación con el token de acceso personal. Consulte Autenticación básica de IIS y PAT para más información.

  • Use barras diagonales en los argumentos de ruta de acceso de archivo. Las barras diagonales inversas no funcionan en agentes macOS y Linux.

  • Los artefactos de compilación se almacenan en un sistema de archivos de Windows, lo que hace que se pierdan todos los permisos de UNIX, incluido el bit de ejecución. Es posible que tenga que restaurar los permisos de UNIX correctos después de descargar los artefactos de Azure Pipelines.

  • Build.ArtifactStagingDirectory y Build.StagingDirectory son intercambiables.

  • La ruta de acceso a Build.ArtifactStagingDirectory se limpia después de cada compilación.

  • Al eliminar una compilación asociada a los paquetes publicados en un recurso compartido de archivos, se eliminarán todos los artefactos de esa ruta de acceso UNC.

  • Si va a publicar los paquetes en un recurso compartido de archivos, asegúrese de proporcionar acceso al agente de compilación.

  • Asegúrese de permitir direcciones IP y direcciones URL de dominio de Azure Artifacts si su organización usa un firewall.