CopyFiles@2 - ファイル v2 タスクをコピーする
このタスクを使用して、一致パターンを使用してソース フォルダーからターゲット フォルダーにファイルをコピーします。 (一致パターンは、フォルダー パスではなく、ファイル パスにのみ一致します)。
構文
# 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
- 2 回の再試行の間の遅延。
string
. 既定値: 1000
。
2 回の再試行の間の遅延を指定します。 この文字列は、リモート ホスト上の UNC ターゲット パスなど、断続的な問題に役立ちます。
ignoreMakeDirErrors
- ターゲット フォルダーの作成時のエラーを無視します。
boolean
. 既定値: false
。
ターゲット フォルダーの作成中に発生したエラーを無視します。 この文字列は、1 つのターゲット フォルダー内の複数のエージェントによるタスクの並列実行に関する問題を回避するのに役立ちます。
タスク制御オプション
すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「 コントロール オプションと一般的なタスク プロパティ」を参照してください。
出力変数
[なし] :
解説
一致するファイルがない場合でも、タスクは成功を報告します。
- が
false
で、一致したファイルがターゲット フォルダーに既に存在する場合Overwrite
、タスクはエラーを報告しませんが、ファイルが既に存在することをログに記録してスキップします。 - が で
true
、一致したファイルがターゲット フォルダーに既に存在する場合Overwrite
は、一致したファイルが上書きされます。
例
成果物のステージング ディレクトリにファイルをコピーして発行する
steps:
- task: CopyFiles@2
inputs:
contents: '_buildOutput/**'
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: $(Build.ArtifactStagingDirectory)
artifactName: MyBuildOutputs
実行可能ファイルと readme ファイルをコピーする
目標
次の C# コンソール アプリを実行するために必要な readme とファイルのみをコピーします。
`-- 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)'
必要条件
要件 | 説明 |
---|---|
パイプラインの種類 | YAML、クラシック ビルド |
上で実行 | エージェント、DeploymentGroup |
確認要求 | なし |
Capabilities | このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。 |
コマンドの制限 | このタスクは、次の コマンド制限を使用して実行されます。 |
設定可能な変数 | このタスクには、 次の変数を設定するアクセス許可があります。変数の設定は無効です |
エージェントのバージョン | 2.182.1 以降 |
タスクのカテゴリ | ユーティリティ |
要件 | 説明 |
---|---|
パイプラインの種類 | YAML、クラシック ビルド |
上で実行 | エージェント、DeploymentGroup |
確認要求 | なし |
Capabilities | このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。 |
コマンドの制限 | Any |
設定可能な変数 | Any |
エージェントのバージョン | 1.91.0 以上 |
タスクのカテゴリ | ユーティリティ |
こちらもご覧ください
- ファイル一致パターンのリファレンス
- このタスク操作方法使用して成果物を発行する
- トラブルシューティングに詳細ログを使用する方法について説明します。