CopyFiles@2: tarea Copiar archivos v2
Use esta tarea para copiar archivos de una carpeta de origen a una carpeta de destino usando patrones de coincidencia. (Los patrones de coincidencia solo coincidirán con las rutas de acceso de archivo, no las rutas de acceso de carpeta).
Syntax
# Copy files v2
# Copy files from a source folder to a target folder using patterns matching file paths (not folder paths).
- task: CopyFiles@2
inputs:
#SourceFolder: # string. Source Folder.
Contents: '**' # string. Required. Contents. Default: **.
TargetFolder: # string. Required. Target Folder.
# Advanced
#CleanTargetFolder: false # boolean. Clean Target Folder. Default: false.
#OverWrite: false # boolean. Overwrite. Default: false.
#flattenFolders: false # boolean. Flatten Folders. Default: false.
#preserveTimestamp: false # boolean. Preserve Target Timestamp. Default: false.
#retryCount: '0' # string. Retry count to copy the file. Default: 0.
#delayBetweenRetries: '1000' # string. Delay between two retries. Default: 1000.
#ignoreMakeDirErrors: false # boolean. Ignore errors during creation of target folder. Default: false.
# Copy files v2
# Copy files from a source folder to a target folder using patterns matching file paths (not folder paths).
- task: CopyFiles@2
inputs:
#SourceFolder: # string. Source Folder.
Contents: '**' # string. Required. Contents. Default: **.
TargetFolder: # string. Required. Target Folder.
# Advanced
#CleanTargetFolder: false # boolean. Clean Target Folder. Default: false.
#OverWrite: false # boolean. Overwrite. Default: false.
#flattenFolders: false # boolean. Flatten Folders. Default: false.
#preserveTimestamp: false # boolean. Preserve Target Timestamp. Default: false.
# Copy Files v2
# Copy files from source folder to target folder using match patterns (The match patterns will only match file paths, not folder paths).
- task: CopyFiles@2
inputs:
#SourceFolder: # string. Source Folder.
Contents: '**' # string. Required. Contents. Default: **.
TargetFolder: # string. Required. Target Folder.
# Advanced
#CleanTargetFolder: false # boolean. Clean Target Folder. Default: false.
#OverWrite: false # boolean. Overwrite. Default: false.
#flattenFolders: false # boolean. Flatten Folders. Default: false.
Entradas
SourceFolder
- Carpeta de origen
string
.
Opcional. Carpeta que contiene los archivos que desea copiar. Si la carpeta está vacía, la tarea copia los archivos de la carpeta raíz del repositorio como si $(Build.SourcesDirectory)
se hubiera especificado.
Si la compilación produce artefactos fuera del directorio de orígenes, especifique $(Agent.BuildDirectory)
para copiar archivos del directorio creado para la canalización.
Contents
- Contenido
string
. Obligatorio. Valor predeterminado: **
.
Rutas de acceso de archivo que se van a incluir como parte de la copia. Esta cadena admite varias líneas de patrones de coincidencia.
Por ejemplo:
*
copia todos los archivos de la carpeta de origen especificada.**
copia todos los archivos de la carpeta de origen especificada y todos los archivos de todas las subcarpetas.**\bin\**
copia todos los archivos de forma recursiva desde cualquier carpeta bin.
El patrón se usa para comprobar la coincidencia solo de las rutas de acceso de archivo, no de las rutas de acceso de carpeta. Especifique patrones, como **\bin\**
en lugar de **\bin
.
Use el separador de ruta de acceso que coincida con el tipo de agente de compilación. Por ejemplo, /
se debe usar para los agentes de Linux. A continuación se muestran más ejemplos.
TargetFolder
- Carpeta de destino
string
. Obligatorio.
La carpeta de destino o la ruta de acceso UNC que contendrá los archivos copiados. Puede usar variables. Ejemplo: $(build.artifactstagingdirectory)
.
CleanTargetFolder
- Limpiar carpeta de destino
boolean
. Valor predeterminado: false
.
Opcional. Elimina todos los archivos existentes en la carpeta de destino antes del proceso de copia.
OverWrite
- Sobrescribir
boolean
. Valor predeterminado: false
.
Opcional. Reemplaza los archivos existentes en la carpeta de destino.
flattenFolders
- Aplanar carpetas
boolean
. Valor predeterminado: false
.
Opcional. Aplana la estructura de carpetas y copia todos los archivos en la carpeta de destino especificada.
preserveTimestamp
- Conservar marca de tiempo de destino
boolean
. Valor predeterminado: false
.
Conserva la marca de tiempo del archivo de destino mediante el archivo de origen original.
retryCount
- Número de reintentos para copiar el archivo
string
. Valor predeterminado: 0
.
Especifica el recuento de reintentos para copiar el archivo. Esta cadena es útil para problemas intermitentes, como rutas de acceso de destino UNC en un host remoto.
delayBetweenRetries
- Retraso entre dos reintentos.
string
. Valor predeterminado: 1000
.
Especifica el retraso entre dos reintentos. Esta cadena es útil para problemas intermitentes, como rutas de acceso de destino UNC en un host remoto.
ignoreMakeDirErrors
- Omitir errores durante la creación de la carpeta de destino.
boolean
. Valor predeterminado: false
.
Omite los errores que se producen durante la creación de la carpeta de destino. Esta cadena es útil para evitar problemas con la ejecución paralela de tareas por varios agentes dentro de una carpeta de destino.
Opciones de control de tareas
Todas las tareas tienen opciones de control además de las entradas de tareas. Para obtener más información, vea Opciones de control y propiedades de tareas comunes.
Variables de salida
Ninguno.
Observaciones
Si no coinciden archivos, la tarea seguirá informando de que se ha realizado correctamente.
- Si
Overwrite
esfalse
y ya existe un archivo coincidente en la carpeta de destino, la tarea no notificará errores, sino que registrará que el archivo ya existe y omitirlo. - Si
Overwrite
estrue
y ya existe un archivo coincidente en la carpeta de destino, se sobrescribirá el archivo coincidente.
Ejemplos
Copia del archivo en el directorio provisional de artefactos y publicación
steps:
- task: CopyFiles@2
inputs:
contents: '_buildOutput/**'
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: $(Build.ArtifactStagingDirectory)
artifactName: MyBuildOutputs
Copia de archivos ejecutables y un archivo Léame
Objetivo
Desea copiar solo el archivo Léame y los archivos necesarios para ejecutar esta aplicación de consola de C#:
`-- ConsoleApplication1
|-- ConsoleApplication1.sln
|-- readme.txt
`-- ClassLibrary1
|-- ClassLibrary1.csproj
`-- ClassLibrary2
|-- ClassLibrary2.csproj
`-- ConsoleApplication1
|-- ConsoleApplication1.csproj
Nota:
ConsoleApplication1.sln contiene una carpeta bin con archivos .dll y .exe. Vea los resultados siguientes para saber lo que se mueve.
En la pestaña Variables, $(BuildConfiguration)
se establece en release
.
Ejemplo con varios patrones de coincidencia:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
Contents: |
ConsoleApplication1\ConsoleApplication1\bin\**\*.exe
ConsoleApplication1\ConsoleApplication1\bin\**\*.dll
ConsoleApplication1\readme.txt
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Ejemplo con la condición O:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
Contents: |
ConsoleApplication1\ConsoleApplication1\bin\**\?(*.exe|*.dll)
ConsoleApplication1\readme.txt
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Ejemplo con la condición NO:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
Contents: |
ConsoleApplication1\**\bin\**\!(*.pdb|*.config)
!ConsoleApplication1\**\ClassLibrary*\**
ConsoleApplication1\readme.txt
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Ejemplo con variables en la sección de contenido
- task: CopyFiles@2
inputs:
Contents: '$(Build.Repository.LocalPath)/**'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Results
Estos archivos se copian en el directorio provisional:
`-- ConsoleApplication1
|-- readme.txt
`-- ConsoleApplication1
`-- bin
`-- Release
| -- ClassLibrary1.dll
| -- ClassLibrary2.dll
| -- ConsoleApplication1.exe
Copia de todo el contenido del directorio de origen excepto la carpeta .git
Ejemplo con varios patrones de coincidencia:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: |
**/*
!.git/**/*
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Requisitos
Requisito | Descripción |
---|---|
Tipos de canalización | YAML, compilación clásica |
Se ejecuta en | Agente, DeploymentGroup |
Peticiones | None |
Capabilities | Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo. |
Restricciones de comandos | Esta tarea se ejecuta con las siguientes restricciones de comandos: restringido |
Variables que se pueden establecer | Esta tarea tiene permiso para establecer las siguientes variables: La configuración de variables está deshabilitada. |
Versión del agente | 2.182.1 o superior |
Categoría de la tarea: | Utilidad |
Requisito | Descripción |
---|---|
Tipos de canalización | YAML, compilación clásica |
Se ejecuta en | Agente, DeploymentGroup |
Peticiones | None |
Capabilities | Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo. |
Restricciones de comandos | Any |
Variables que se pueden establecer | Any |
Versión del agente | 1.91.0 o superior |
Categoría de la tarea: | Utilidad |