CopyFiles@2 - 파일 v2 작업 복사
일치 패턴을 사용하여 원본 폴더에서 대상 폴더로 파일을 복사하려면 이 작업을 사용합니다. 일치 패턴은 폴더 경로가 아닌 파일 경로만 일치합니다.
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.
입력
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
입니다.
대상 폴더를 만드는 동안 발생하는 오류를 무시합니다. 이 문자열은 한 대상 폴더 내의 여러 에이전트가 태스크를 병렬로 실행하는 문제를 방지하는 데 유용합니다.
작업 제어 옵션
모든 작업에는 작업 입력 외에 제어 옵션이 있습니다. 자세한 내용은 컨트롤 옵션 및 일반적인 작업 속성을 참조하세요.
출력 변수
없음
설명
일치하는 파일이 없으면 작업은 여전히 성공을 보고합니다.
- 가
false
이고 일치하는 파일이 대상 폴더에 이미 있는 경우Overwrite
작업은 실패를 보고하지 않고 파일이 이미 있음을 기록하고 건너뜁니다. - 가
true
이고 일치하는 파일이 대상 폴더에 이미 있는 경우Overwrite
일치하는 파일을 덮어씁니다.
예
아티팩트 스테이징 디렉터리에 파일 복사 및 게시
steps:
- task: CopyFiles@2
inputs:
contents: '_buildOutput/**'
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: $(Build.ArtifactStagingDirectory)
artifactName: MyBuildOutputs
실행 파일 및 추가 정보 파일 복사
목표
이 C# 콘솔 앱을 실행하는 데 필요한 추가 정보 및 파일만 복사하려고 합니다.
`-- ConsoleApplication1
|-- ConsoleApplication1.sln
|-- readme.txt
`-- ClassLibrary1
|-- ClassLibrary1.csproj
`-- ClassLibrary2
|-- ClassLibrary2.csproj
`-- ConsoleApplication1
|-- ConsoleApplication1.csproj
참고
ConsoleApplication1.sln 에는 .dll 및 .exe 파일이 있는 bin 폴더가 포함되어 있습니다. 이동되는 내용을 보려면 아래 결과를 참조하세요.
변수 탭에서 가 $(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)'
요구 사항
요구 사항 | Description |
---|---|
파이프라인 유형 | YAML, 클래식 빌드 |
실행 중 | 에이전트, DeploymentGroup |
요청 | 없음 |
Capabilities | 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다. |
명령 제한 사항 | 이 작업은 다음 명령 제한을 사용하여 실행됩니다. 제한됨 |
설정 가능한 변수 | 이 작업에는 다음 변수를 설정할 수 있는 권한이 있습니다. 변수 설정을 사용할 수 없습니다. |
에이전트 버전 | 2.182.1 이상 |
작업 범주 | 유틸리티 |
요구 사항 | Description |
---|---|
파이프라인 유형 | YAML, 클래식 빌드 |
실행 중 | 에이전트, DeploymentGroup |
요청 | 없음 |
Capabilities | 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다. |
명령 제한 사항 | 모두 |
설정 가능한 변수 | 모두 |
에이전트 버전 | 1.91.0 이상 |
작업 범주 | 유틸리티 |
참고 항목
- 파일 일치 패턴 참조
- 이 작업을 사용하여 아티팩트 게시를 어떻게 할까요?
- 문제 해결을 위해 자세한 정보 표시 로그를 사용하는 방법을 알아봅니다.