CopyFiles@2 – Tarefa Copiar arquivos v2

Use essa 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 a caminhos de arquivo, não a caminhos de pasta).

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 - Pasta de origem
string.

Opcional. A pasta que contém os arquivos que você deseja copiar. Se a pasta estiver vazia, a tarefa copiará arquivos da pasta raiz do repositório como se tivesse $(Build.SourcesDirectory) sido especificado.

Se o build produzir artefatos fora do diretório de fontes, especifique $(Agent.BuildDirectory) para copiar arquivos do diretório criado para o pipeline.


Contents - Conteúdo
string. Obrigatórios. Valor padrão: **.

Os caminhos de arquivo a serem incluídos como parte da cópia. Essa cadeia de caracteres dá suporte a 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 a caminhos de arquivo, não a caminhos de pasta. Especifique padrões, como **\bin\** em vez de **\bin.

Use o separador de caminho que corresponde ao tipo de agente de build. Por exemplo, / deve ser usado para agentes do Linux. Mais exemplos são mostrados abaixo.


TargetFolder - Pasta de Destino
string. Obrigatórios.

A pasta de destino ou o caminho UNC que conterá os arquivos copiados. Você pode usar variáveis. Exemplo: $(build.artifactstagingdirectory).


CleanTargetFolder - Limpar Pasta de Destino
boolean. Valor padrão: false.

Opcional. Exclui todos os arquivos existentes na pasta de destino antes do processo de cópia.


OverWrite - Substituir
boolean. Valor padrão: false.

Opcional. Substitui os arquivos existentes na pasta de destino.


flattenFolders - Nivelar pastas
boolean. Valor padrão: false.

Opcional. Nivela a estrutura de pastas e copia todos os arquivos para a pasta de destino especificada.


preserveTimestamp - Preservar carimbo de data/hora de destino
boolean. Valor padrão: false.

Preserva o carimbo de data/hora do arquivo de destino usando o arquivo de origem original.


retryCount - Contagem de repetição para copiar o arquivo
string. Valor padrão: 0.

Especifica a contagem de repetições 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 padrão: 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 - Ignorar erros durante a criação da pasta de destino.
boolean. Valor padrão: 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 em uma pasta de destino.


Opções de controle da tarefa

Todas as tarefas têm opções de controle além de suas entradas de tarefa. Para obter mais informações, consulte Opções de controle e propriedades comuns da tarefa.

Variáveis de saída

Nenhum.

Comentários

Se nenhum arquivo corresponder, a tarefa ainda relatará êxito.

  • Se Overwrite for false e um arquivo correspondente já existir na pasta de destino, a tarefa não relatará falha, mas registrará em log que o arquivo já existe e o ignorará.
  • Se Overwrite for true e um arquivo correspondente já existir 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

Goal

Você deseja copiar apenas o leiame e os arquivos necessários para executar este aplicativo de console em 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 arquivos .dll e .exe, confira os Resultados abaixo para ver o que é movido!

Na guia Variáveis, $(BuildConfiguration) é 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 a 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 a 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

Esses arquivos são copiados para o diretório de preparo:

`-- ConsoleApplication1
    |-- readme.txt
    `-- ConsoleApplication1
        `-- bin
            `-- Release
                | -- ClassLibrary1.dll
                | -- ClassLibrary2.dll
                | -- ConsoleApplication1.exe

Copiar 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)'

Requisitos

Requisito Descrição
Tipos de pipeline YAML, build clássico
É executado em Agent, DeploymentGroup
Demandas Nenhum
Funcionalidades Essa tarefa não atende a nenhuma demanda por 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á desabilitada
Versão do agente 2.182.1 ou superior
Categoria da tarefa Utilitário
Requisito Descrição
Tipos de pipeline YAML, build clássico
É executado em Agent, DeploymentGroup
Demandas Nenhum
Funcionalidades Essa tarefa não atende a nenhuma demanda por tarefas subsequentes no trabalho.
Restrições de comando Qualquer
Variáveis configuráveis Qualquer
Versão do agente 1.91.0 ou superior
Categoria da tarefa Utilitário

Confira também