Artefactos en Azure Pipelines

Nota

Se recomienda actualizar de los artefactos de compilación ( y ) a los DownloadBuildArtifacts@0DownloadBuildArtifacts@0 ( y ) para un rendimiento más DownloadPipelineArtifact@2 rápido.

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

Cómo publicar artefactos?

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

Publicación de un archivo de texto

- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt

- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: '$(Build.ArtifactStagingDirectory)'
    artifactName: drop
  • pathToPublish:la ruta de acceso del artefacto. Puede ser una ruta de acceso absoluta o relativa. No se admiten caracteres comodín.
  • artifactName:el nombre del artefacto.

Nota

Asegúrese de que no usa uno de los nombres de carpetas reservadas al publicar el artefacto. Consulte Carpetas de aplicaciones para obtener más detalles.

YAML no se admite en TFS.

Publicación de dos conjuntos de artefactos

- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt

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

YAML no se admite en TFS.

Ejemplo: Ensamblar artefactos de C++ en una ubicación y publicar como artefacto

- 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 desea copiar. Si deja este valor vacío, la copia se realizará desde la carpeta raíz del repositorio ( $(Build.SourcesDirectory) ).
  • contents:las ubicaciónes de los archivos que se copiarán en la carpeta de destino.
  • targetFolder:carpeta de destino.
  • pathToPublish:la ruta de acceso de carpeta o archivo que se publicará. Puede ser una ruta de acceso absoluta o relativa, y no se admiten caracteres comodín.
  • artifactName:el nombre del artefacto que desea crear.

Nota

No puede usar Bin, App_Data y otros nombres de carpeta reservados por IIS como nombre de artefacto porque este contenido no se sirve en respuesta a las solicitudes web. Consulte Estructura ASP.NET carpetas Project web para obtener más detalles.

YAML no se admite en TFS.

Cómo consume artefactos?

Puede consumir los artefactos de diferentes maneras: puede usarlos en la canalización de versión, pasarlos entre los trabajos de canalización, descargarlos directamente desde la canalización e incluso descargarlos desde fuentes y orígenes ascendentes.

Consumo de artefactos en canalizaciones de versión

Puede descargar artefactos generados por una canalización de compilación (creada en un editor clásico) o una canalización de YAML (creada a través de un archivo YAML) en una canalización de versión e implementarlos en el destino de su elección.

Consumo de un artefacto en el siguiente trabajo de la canalización

Puede consumir un artefacto generado por un trabajo en un trabajo posterior de la canalización, incluso cuando ese trabajo se encuentra en una fase diferente (canalizaciones YAML). Esto puede ser útil para probar el artefacto.

Descargar para depurar

Puede descargar un artefacto directamente desde una canalización para usarlo en la depuración.

- 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: (el valor predeterminado) o de una compilación específica.
  • downloadType:elija si desea descargar un único 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.

YAML no se admite en TFS.

Nota

En caso de que use una tarea, puede hacer referencia a deployment los artefactos de compilación mediante $(Agent.BuildDirectory) la variable . Consulte Variables del Agente para obtener más información sobre cómo usar variables predefinidas.

Sugerencias

  • Argumento de ubicación de publicación del artefacto: Azure Pipelines/TFS(TFS 2018 RTMy versiones anteriores: Tipo de artefacto: Servidor) es la mejor opción y más sencilla en la mayoría de los casos. Esta opción hace que los artefactos se almacenen en Azure Pipelines o TFS. Pero si usa un agente de Windows privado, tiene la opción de colocar en un recurso compartido de archivos UNC.

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

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

  • En Azure Pipelines y algunas versiones de TFS, dos variables diferentes apuntan al directorio de ensayo: y Build.StagingDirectory . Son intercambiables.

  • El directorio al que hace Build.ArtifactStagingDirectory referencia se limpia después de cada compilación.

  • La eliminación de una compilación que publicó Artifacts en un recurso compartido de archivos dará lugar a la eliminación de todos los Artifacts en esa ruta de acceso UNC.

  • Puede obtener artefactos de compilación desde la API REST.

Use estas tareas para publicar artefactos:

Exploración, descarga e implementación de los artefactos

Cuando la compilación haya terminado, si la ha visto ejecutarse, seleccione la pestaña Resumen y vea el artefacto en la sección Compilación de artefactos publicados.

Artefacto de compilación publicado

Una vez finalizada la compilación, si la ha visto ejecutarse, seleccione el nombre de la compilación completada y, a continuación, seleccione la pestaña Artifacts para ver el artefacto.

TFS de artefacto de compilación publicado

Desde aquí, puede explorar o descargar los artefactos.

También puede usar Azure Pipelines para implementar la aplicación mediante los artefactos que ha publicado. Consulte Artifacts en Azure Pipelines versiones anteriores.

Publicación desde TFS en un recurso compartido de archivos UNC

Si usa un agente de Windows privado, puede establecer la opción ubicación de publicación del artefacto(TFS 2018 RTMy versiones anteriores: tipo de artefacto) para publicar los archivos en un recurso compartido de archivos UNC.

Nota

Use un Windows de compilación. Esta opción no funciona para los agentes de macOS y Linux.

Elija recurso compartido de archivos para copiar el artefacto en un recurso compartido de archivos. Motivos comunes para hacerlo:

  • El tamaño de la colocación es grande y consume demasiado tiempo y ancho de banda para copiar.

  • Debe ejecutar algunos scripts personalizados u otras herramientas en el artefacto.

Si usa un recurso compartido de archivos, especifique la ruta de acceso del archivo UNC a la carpeta. Puede controlar cómo se crea la carpeta para cada compilación mediante las variables. Por ejemplo: \\my\share\$(Build.DefinitionName)\$(Build.BuildNumber).

Publicación de artefactos desde TFS 2015 RTM

Si usa TFS 2015 RTM, los pasos de los ejemplos anteriores no están disponibles. En su lugar, copie y publique los artefactos mediante una sola tarea: Compilar: Publicar compilación Artifacts.