CopyFiles@2 — задача копирования файлов версии 2
Используйте эту задачу для копирования файлов из исходной папки в целевую папку с помощью шаблонов соответствия. (Шаблоны соответствия будут соответствовать только путям к файлам, но не к папкам).
Синтаксис
# 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.
Входные данные
SourceFolder
- Исходная папка
string
.
Необязательный элемент. Папка, содержащая файлы, которые нужно скопировать. Если папка пуста, задача копирует файлы из корневой папки репозитория так, как будто $(Build.SourcesDirectory)
она была указана.
Если сборка создает артефакты за пределами исходного каталога, укажите $(Agent.BuildDirectory)
для копирования файлов из каталога, созданного для конвейера.
Contents
- Содержимое
string
. Обязательный. Значение по умолчанию: **
.
Пути к файлам, включаемые в копию. Эта строка поддерживает несколько строк шаблонов соответствия.
Пример:
*
копирует все файлы в указанной исходной папке.**
копирует все файлы в указанной исходной папке и все файлы во всех вложенных папках.**\bin\**
рекурсивно копирует все файлы из любой папки bin.
Шаблон используется для сопоставления только путей к файлам, а не путей к папкам. Укажите шаблоны, например , вместо **\bin\**
**\bin
.
Используйте разделитель пути, соответствующий типу агента сборки. Например, /
должен использоваться для агентов Linux. Ниже приведены дополнительные примеры.
TargetFolder
- Целевая папка
string
. Обязательный.
Целевая папка или UNC-путь, который будет содержать скопированные файлы. Можно использовать переменные. Например, $(build.artifactstagingdirectory)
.
CleanTargetFolder
- Очистка целевой папки
boolean
. Значение по умолчанию: false
.
Необязательный элемент. Удаляет все существующие файлы в целевой папке перед процессом копирования.
OverWrite
- Перезаписать
boolean
. Значение по умолчанию: false
.
Необязательный элемент. Заменяет существующие файлы в целевой папке.
flattenFolders
- Плоские папки
boolean
. Значение по умолчанию: false
.
Необязательный элемент. Преобразует структуру папок в плоскую структуру и копирует все файлы в указанную целевую папку.
preserveTimestamp
- Сохранение целевой метки времени
boolean
. Значение по умолчанию: false
.
Сохраняет метку времени целевого файла с помощью исходного файла.
retryCount
- Число повторных попыток для копирования файла
string
. Значение по умолчанию: 0
.
Указывает число повторных попыток копирования файла. Эта строка полезна для периодических проблем, таких как целевые пути UNC на удаленном узле.
delayBetweenRetries
- Задержка между двумя повторными попытками.
string
. Значение по умолчанию: 1000
.
Указывает задержку между двумя повторными попытками. Эта строка полезна для периодических проблем, таких как целевые пути UNC на удаленном узле.
ignoreMakeDirErrors
- Игнорируйте ошибки во время создания целевой папки.
boolean
. Значение по умолчанию: false
.
Игнорирует ошибки, возникающие во время создания целевой папки. Эта строка полезна для предотвращения проблем с параллельным выполнением задач несколькими агентами в одной целевой папке.
Параметры управления задачами
Помимо входных данных, все задачи имеют параметры управления. Дополнительные сведения см. в разделе Параметры управления и общие свойства задачи.
Выходные переменные
Нет.
Remarks
Если файлы не совпадают, задача по-прежнему будет сообщать об успешном выполнении.
- Если
Overwrite
имеет значение иfalse
соответствующий файл уже существует в целевой папке, задача не будет сообщать о сбое, а записывать в журнал, что файл уже существует, и пропускать его. - Если
Overwrite
имеет значениеtrue
и сопоставленный файл уже существует в целевой папке, соответствующий файл будет перезаписан.
Примеры
Копирование файла в промежуточный каталог артефактов и публикация
steps:
- task: CopyFiles@2
inputs:
contents: '_buildOutput/**'
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: $(Build.ArtifactStagingDirectory)
artifactName: MyBuildOutputs
Копирование исполняемых файлов и файла сведений
Goal
Вы хотите скопировать файл сведений и файлы, необходимые для запуска этого консольного приложения C#:
`-- ConsoleApplication1
|-- ConsoleApplication1.sln
|-- readme.txt
`-- ClassLibrary1
|-- ClassLibrary1.csproj
`-- ClassLibrary2
|-- ClassLibrary2.csproj
`-- ConsoleApplication1
|-- ConsoleApplication1.csproj
Примечание
ConsoleApplication1.sln содержит папку bin с .dll и .exe файлами. См. раздел Результаты ниже, чтобы узнать, что перемещается!
На вкладке $(BuildConfiguration)
Переменные для параметра задано значение release
.
Пример с несколькими шаблонами совпадений:
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)'
Пример с условием OR:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
Contents: |
ConsoleApplication1\ConsoleApplication1\bin\**\?(*.exe|*.dll)
ConsoleApplication1\readme.txt
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Пример с условием 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)'
Пример с переменными в разделе содержимого
- task: CopyFiles@2
inputs:
Contents: '$(Build.Repository.LocalPath)/**'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Результаты
Эти файлы копируются в промежуточный каталог:
`-- ConsoleApplication1
|-- readme.txt
`-- ConsoleApplication1
`-- bin
`-- Release
| -- ClassLibrary1.dll
| -- ClassLibrary2.dll
| -- ConsoleApplication1.exe
Скопируйте все данные из исходного каталога, кроме папки .git
Пример с несколькими шаблонами совпадений:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: |
**/*
!.git/**/*
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Требования
Требование | Описание |
---|---|
Типы конвейеров | YAML, классическая сборка |
Выполняется в | Агент, DeploymentGroup |
Требования | Нет |
Capabilities | Эта задача не удовлетворяет требованиям для последующих задач в задании. |
Ограничения команд | Эта задача выполняется с использованием следующих ограничений команд: restricted |
Устанавливаемые переменные | Эта задача имеет разрешение на установку следующих переменных: настройка переменных отключена |
Версия агента | 2.182.1 или более поздней версии |
Категория задач | Служебная программа |
Требование | Описание |
---|---|
Типы конвейеров | YAML, классическая сборка |
Выполняется в | Агент, DeploymentGroup |
Требования | Нет |
Capabilities | Эта задача не удовлетворяет требованиям для последующих задач в задании. |
Ограничения команд | Любой |
Устанавливаемые переменные | Любой |
Версия агента | 1.91.0 или более поздней версии |
Категория задач | Служебная программа |