Partilhar via


tarefa CopyFiles@2 - Copiar ficheiros v2

Utilize esta tarefa para copiar ficheiros de uma pasta de origem para uma pasta de destino com padrões de correspondência. (Os padrões de correspondência só corresponderão aos caminhos dos ficheiros e não aos caminhos das pastas).

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 ficheiros que pretende copiar. Se a pasta estiver vazia, a tarefa copia ficheiros da pasta raiz do repositório como $(Build.SourcesDirectory) se tivesse sido especificado.

Se a compilação produzir artefactos fora do diretório de origens, especifique $(Agent.BuildDirectory) para copiar ficheiros do diretório criado para o pipeline.


Contents - Conteúdo
string. Obrigatório. Valor predefinido: **.

Os caminhos de ficheiro a incluir como parte da cópia. Esta cadeia suporta múltiplas linhas de padrões de correspondência.

Por exemplo:

  • * copia todos os ficheiros na pasta de origem especificada.
  • ** copia todos os ficheiros na pasta de origem especificada e todos os ficheiros em todas as subpastas.
  • **\bin\** copia todos os ficheiros de forma recursiva a partir de qualquer pasta bin.

O padrão é utilizado para corresponder apenas a caminhos de ficheiros e não a caminhos de pastas. Especifique padrões, como, por **\bin\** exemplo, em vez de **\bin.

Utilize o separador de caminho que corresponde ao tipo de agente de compilação. Por exemplo, / tem de ser utilizado para agentes linux. São apresentados mais exemplos abaixo.


TargetFolder - Pasta de Destino
string. Obrigatório.

A pasta de destino ou o caminho UNC que irá conter os ficheiros copiados. Pode utilizar variáveis. Exemplo: $(build.artifactstagingdirectory).


CleanTargetFolder - Limpar Pasta de Destino
boolean. Valor predefinido: false.

Opcional. Elimina todos os ficheiros existentes na pasta de destino antes do processo de cópia.


OverWrite - Substituir
boolean. Valor predefinido: false.

Opcional. Substitui os ficheiros existentes na pasta de destino.


flattenFolders - Aplanar Pastas
boolean. Valor predefinido: false.

Opcional. Aplana a estrutura de pastas e copia todos os ficheiros para a pasta de destino especificada.


preserveTimestamp - Preservar Carimbo de Data/Hora de Destino
boolean. Valor predefinido: false.

Preserva o carimbo de data/hora do ficheiro de destino com o ficheiro de origem original.


retryCount - Repetir contagem para copiar o ficheiro
string. Valor predefinido: 0.

Especifica a contagem de repetições para copiar o ficheiro. Esta cadeia é útil para problemas intermitentes, como caminhos de destino UNC num anfitrião remoto.


delayBetweenRetries - Atraso entre duas repetições.
string. Valor predefinido: 1000.

Especifica o atraso entre duas repetições. Esta cadeia é útil para problemas intermitentes, como caminhos de destino UNC num anfitrião remoto.


ignoreMakeDirErrors - Ignorar erros durante a criação da pasta de destino.
boolean. Valor predefinido: false.

Ignora os erros que ocorrem durante a criação da pasta de destino. Esta cadeia é útil para evitar problemas com a execução paralela de tarefas por vários agentes numa pasta de destino.


Opções de controlo de tarefas

Todas as tarefas têm opções de controlo para além das entradas de tarefas. Para obter mais informações, veja Opções de controlo e propriedades de tarefas comuns.

Variáveis de saída

Nenhum.

Observações

Se nenhum ficheiro corresponder, a tarefa continuará a reportar êxito.

  • Se Overwrite for false e já existir um ficheiro correspondente na pasta de destino, a tarefa não reportará a falha, mas registará que o ficheiro já existe e ignorará o mesmo.
  • Se Overwrite for true e já existir um ficheiro correspondente na pasta de destino, o ficheiro correspondente será substituído.

Exemplos

Copiar ficheiro para o diretório de teste de artefactos 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 ficheiro readme

Objetivo

Quer copiar apenas o readme e os ficheiros necessários para executar esta aplicação de consola C#:

`-- ConsoleApplication1
    |-- ConsoleApplication1.sln
    |-- readme.txt
    `-- ClassLibrary1
        |-- ClassLibrary1.csproj
    `-- ClassLibrary2
        |-- ClassLibrary2.csproj
    `-- ConsoleApplication1
        |-- ConsoleApplication1.csproj

Nota

ConsoleApplication1.sln contém uma pasta bin com .dll e .exe ficheiros. Veja os Resultados abaixo para ver o que é movido!

No separador 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 secção de conteúdo

- task: CopyFiles@2
  inputs:
    Contents: '$(Build.Repository.LocalPath)/**' 
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

Resultados

Estes ficheiros são copiados para o diretório de teste:

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

Requisitos

Requisito Description
Tipos de pipeline YAML, Compilação clássica
É executado em Agente, DeploymentGroup
Exigências Nenhuma
Capacidades Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes na tarefa.
Restrições de comandos Esta tarefa é executada com as seguintes restrições de comandos: restritas
Variáveis de tabelas definidas Esta tarefa tem permissão para definir as seguintes variáveis: A definição de variáveis está desativada
Versão do agente 2.182.1 ou superior
Categoria da tarefa Utilitário
Requisito Description
Tipos de pipeline YAML, Compilação clássica
É executado em Agente, DeploymentGroup
Exigências Nenhuma
Capacidades Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes na tarefa.
Restrições de comandos Qualquer
Variáveis de tabelas definidas Qualquer
Versão do agente 1.91.0 ou superior
Categoria da tarefa Utilitário

Ver também