Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Use esta tarefa para copiar arquivos de uma pasta de origem para uma pasta de destino usando padrões de correspondência. (Os padrões de correspondência corresponderão apenas aos caminhos de arquivo, não aos caminhos de pasta).
Sintaxe
# 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.
Insumos
SourceFolder
-
pasta de origem
string
.
Opcional. A pasta que contém os arquivos que você deseja copiar. Se a pasta estiver vazia, a tarefa copiará os arquivos da pasta raiz do repositório como se $(Build.SourcesDirectory)
tivesse sido especificado.
Se sua compilação produz artefatos fora do diretório de códigos-fonte, especifique $(Agent.BuildDirectory)
copiar arquivos do diretório criado para o pipeline.
Contents
-
Conteúdo
string
. Obrigatório Valor predefinido: **
.
Os caminhos de arquivo a serem incluídos como parte da cópia. Esta cadeia de caracteres suporta várias linhas de padrões de correspondência.
Por exemplo:
-
*
copia todos os arquivos na pasta de origem especificada. -
**
copia todos os arquivos na pasta de origem especificada e todos os arquivos em todas as subpastas. -
**\bin\**
copia todos os arquivos recursivamente de qualquer pasta bin.
O padrão é usado para corresponder apenas caminhos de arquivo, não caminhos de pasta. Especifique padrões, como **\bin\**
em vez de **\bin
.
A quebra automática de caracteres especiais no []
pode ser usada para escapar de caracteres glob literais em um nome de arquivo. Por exemplo, o nome de arquivo literal hello[a-z]
pode ser escapado como hello[[]a-z]
. Para obter mais informações, consulte de referência de padrões de correspondência de arquivos .
Use o separador de caminho que corresponde ao seu tipo de agente de compilação. Por exemplo, /
deve ser usado para agentes Linux. Mais exemplos são mostrados abaixo.
TargetFolder
-
Pasta de destino
string
. Obrigatório
A pasta de destino ou caminho UNC que conterá os arquivos copiados. Você pode usar variáveis. Exemplo: $(build.artifactstagingdirectory)
.
CleanTargetFolder
-
Limpar pasta de destino
boolean
. Valor predefinido: false
.
Opcional. Exclui todos os arquivos existentes na pasta de destino antes do processo de cópia.
OverWrite
-
Substituir
boolean
. Valor predefinido: false
.
Opcional. Substitui os arquivos existentes na pasta de destino.
flattenFolders
-
Nivelar pastas
boolean
. Valor predefinido: false
.
Opcional. Nivela a estrutura de pastas e copia todos os arquivos para a pasta de destino especificada.
preserveTimestamp
-
Preservar o carimbo de data/hora de destino
boolean
. Valor predefinido: false
.
Preserva o carimbo de data/hora do arquivo de destino usando o arquivo de origem original.
retryCount
-
Contagem de novas tentativas para copiar o arquivo
string
. Valor predefinido: 0
.
Especifica a contagem de tentativas para copiar o arquivo. Essa cadeia de caracteres é útil para problemas intermitentes, como caminhos de destino UNC em um host remoto.
delayBetweenRetries
-
Atraso entre duas tentativas.
string
. Valor predefinido: 1000
.
Especifica o atraso entre duas tentativas. Essa cadeia de caracteres é útil para problemas intermitentes, como caminhos de destino UNC em um host remoto.
ignoreMakeDirErrors
-
Ignore erros durante a criação da pasta de destino.
boolean
. Valor predefinido: false
.
Ignora erros que ocorrem durante a criação da pasta de destino. Essa cadeia de caracteres é útil para evitar problemas com a execução paralela de tarefas por vários agentes dentro de uma pasta de destino.
Opções de controlo de tarefas
Todas as tarefas têm opções de controle, além de suas entradas de tarefas. Para obter mais informações, consulte Opções de controle de e propriedades de tarefas comuns.
Variáveis de saída
Nenhum.
Observações
Se nenhum arquivo corresponder, a tarefa ainda relatará o sucesso.
- Se
Overwrite
forfalse
e um arquivo correspondente já existir na pasta de destino, a tarefa não relatará falha, mas registrará que o arquivo já existe e o ignorará. - Se
Overwrite
fortrue
e já existir um arquivo correspondente na pasta de destino, o arquivo correspondente será substituído.
Exemplos
Copiar arquivo para o diretório de preparo de artefatos e publicar
steps:
- task: CopyFiles@2
inputs:
contents: '_buildOutput/**'
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: $(Build.ArtifactStagingDirectory)
artifactName: MyBuildOutputs
Copiar executáveis e um arquivo readme
Objetivo
Você deseja copiar apenas o readme e os arquivos necessários para executar este aplicativo de console C#:
`-- ConsoleApplication1
|-- ConsoleApplication1.sln
|-- readme.txt
`-- ClassLibrary1
|-- ClassLibrary1.csproj
`-- ClassLibrary2
|-- ClassLibrary2.csproj
`-- ConsoleApplication1
|-- ConsoleApplication1.csproj
Observação
ConsoleApplication1.sln contém uma pasta bin com .dll e .exe arquivos, veja os resultados abaixo para ver o que é movido!
Na guia Variáveis, $(BuildConfiguration)
está definido como release
.
Exemplo com vários padrões de correspondência:
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)'
Exemplo com condição OR:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
Contents: |
ConsoleApplication1\ConsoleApplication1\bin\**\?(*.exe|*.dll)
ConsoleApplication1\readme.txt
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Exemplo com condição NOT:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
Contents: |
ConsoleApplication1\**\bin\**\!(*.pdb|*.config)
!ConsoleApplication1\**\ClassLibrary*\**
ConsoleApplication1\readme.txt
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Exemplo com variáveis na seção de conteúdo
- task: CopyFiles@2
inputs:
Contents: '$(Build.Repository.LocalPath)/**'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Resultados obtidos
Esses arquivos são copiados para o diretório de preparação:
`-- ConsoleApplication1
|-- readme.txt
`-- ConsoleApplication1
`-- bin
`-- Release
| -- ClassLibrary1.dll
| -- ClassLibrary2.dll
| -- ConsoleApplication1.exe
Copie tudo do diretório de origem, exceto a pasta .git
Exemplo com vários padrões de correspondência:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: |
**/*
!.git/**/*
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Requerimentos
Requisito | Descrição |
---|---|
Tipos de pipeline | YAML, construção clássica |
Funciona em | Agente, DeploymentGroup |
Exigências | Nenhum |
Capacidades | Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes no trabalho. |
Restrições de comando | Esta tarefa é executada usando as seguintes restrições de comando : restrito |
Variáveis configuráveis | Esta tarefa tem permissão para definir as seguintes variáveis: A configuração de variáveis está desativada |
Versão do agente | 2.182.1 ou superior |
Categoria de tarefa | Utilidade |
Requisito | Descrição |
---|---|
Tipos de pipeline | YAML, construção clássica |
Funciona em | Agente, DeploymentGroup |
Exigências | Nenhum |
Capacidades | Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes no trabalho. |
Restrições de comando | Qualquer |
Variáveis configuráveis | Qualquer |
Versão do agente | 1.91.0 ou superior |
Categoria de tarefa | Utilidade |
Ver também
- Referência de padrões de correspondência de ficheiros
- Como faço para usar essa tarefa para publicar artefatos
- Saiba como usar de logs detalhados para solução de problemas.