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 |
|---|---|
pathToPublishRuta 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) |
ArtifactNameNombre del artefacto requerido |
Especifique el nombre del artefacto que desea crear. Puede ser lo que quiera. Valor predeterminado: drop |
publishLocationUbicació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 |
TargetPathRuta 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. |
ParallelCopia 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. |
ParallelCountRecuento 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 |
FileCopyOptionsOpciones 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:
- Editar la canalización y seleccionar Variables
- Agregar una nueva variable con el nombre
System.Debugy el valortrue - 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).