Tarea Publicar Artifacts compilación

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 | TFS 2017 | TFS 2015.3

Nota

Esta tarea está en desuso. Se recomienda usar la tarea Pipeline Artifacts en su lugar.

Use esta tarea en una canalización de compilación para publicar artefactos de compilación Azure Pipelines, TFS o un recurso compartido de archivos.

Peticiones

Ninguno

Fragmento de código YAML

# Publish build artifacts
# Publish build artifacts to Azure Pipelines or a Windows file share
- task: PublishBuildArtifacts@1
  inputs:
    #pathToPublish: '$(Build.ArtifactStagingDirectory)' 
    #artifactName: 'drop' 
    #publishLocation: 'Container' # Options: container, filePath
    #targetPath: # Required when publishLocation == FilePath
    #parallel: false # Optional
    #parallelCount: # Optional
    #fileCopyOptions: #Optional

Argumentos

Argumento Descripción
pathToPublish
Ruta de acceso para publicar
requerido
Ruta de acceso de archivo o carpeta que se publicará. Puede ser una ruta de acceso completa o una ruta de acceso relativa a la raíz del repositorio. No se admiten caracteres comodín. Vea Artifacts en Azure Pipelines.
Valor predeterminado: $(Build.ArtifactStagingDirectory)
ArtifactName
Nombre del artefacto
requerido
Especifique el nombre del artefacto que desea crear. Puede ser lo que quiera.
Valor predeterminado: drop
publishLocation
Ubicación de publicación de artefactos
requerido
Elija si desea almacenar el artefacto en Azure Pipelines ( ) o copiarlo en un recurso compartido de archivos ( ) que debe ser accesible Container desde el agente de FilePath compilación. Para más información, consulte Artifacts en Azure Pipelines.
Valor predeterminado: Container
TargetPath
Ruta de acceso del recurso compartido de archivos
requerido,si
Especifique la ruta de acceso al recurso compartido de archivos donde desea copiar los archivos. La ruta de acceso debe ser una ruta de acceso completa o una ruta de acceso válida relativa al directorio raíz del repositorio. No se admite la publicación de artefactos desde un agente de Linux o macOS en un recurso compartido de archivos.
Parallel
Copia paralela(Azure Pipelines, TFS 2018o posterior)
Seleccione si desea copiar archivos en paralelo mediante varios subprocesos para un mayor rendimiento potencial. Si esta configuración no está habilitada, se usará un único subproceso.
ParallelCount
Recuento paralelo(Azure Pipelines, TFS 2018o posterior)
Escriba el grado de paralelismo (el número de subprocesos) utilizado para realizar la copia. El valor debe ser al menos 1 y no mayor que 128. Elija un valor basado en las funcionalidades de CPU del agente de compilación.
Valor predeterminado: 8
FileCopyOptions
Opciones de copia de archivos
Pase opciones adicionales al comando Robocopy. Por ejemplo, el patrón de minimatch recursivo **/* .
Opciones de control

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 solicitudes web. Consulte Estructura ASP.NET carpetas Project web para obtener más detalles.

Ejemplo

steps:
- task: CopyFiles@2
  inputs:
    contents: '_buildOutput/**'
    targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: $(Build.ArtifactStagingDirectory)
    artifactName: MyBuildOutputs

Preguntas más frecuentes

P: Tengo problemas con la publicación de mis artefactos. ¿Cómo puedo ver los registros detallados?

Para habilitar registros detallados para la canalización:

  1. Editar la canalización y seleccionar Variables
  2. Agregar una nueva variable con el nombre System.Debug y el valor true
  3. Guardar

P: ¿Qué variables están disponibles para mí?

A: $(Build.SourcesDirectory) y son solo algunas de las variables que puede usar en la $(Agent.BuildDirectory) canalización. Las variables están disponibles como expresiones o scripts.

Consulte Definición de variables,variables predefinidasy variables clásicas de versión y artefactos para obtener información sobre los distintos tipos de variables.

P: La tarea me permite publicar artefactos en el trabajo de implementación en la canalización yaml, pero ¿no puedo usarlos en la canalización de nivel inferior?

A. Los trabajos de implementación no tienen el contexto de las ramas de origen y, por tanto, no son adecuados para publicar artefactos. Se han diseñado principalmente para consumir artefactos. Una solución alternativa sería aislar esa lógica en un trabajo independiente (con dependencias en los trabajos de implementación).