CopyFiles@2 – úloha kopírování souborů v2
Pomocí této úlohy můžete kopírovat soubory ze zdrojové složky do cílové složky pomocí vzorů shody. (Vzory shody budou odpovídat pouze cestám k souborům, ne cestám ke složkám.)
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.
Vstupy
SourceFolder
- Zdrojová složka
string
.
Nepovinný parametr. Složka obsahující soubory, které chcete zkopírovat. Pokud je složka prázdná, úloha zkopíruje soubory z kořenové složky úložiště, jako by $(Build.SourcesDirectory)
byla zadána.
Pokud sestavení vytváří artefakty mimo adresář sources, zadejte $(Agent.BuildDirectory)
, aby se soubory zkopírovaly z adresáře vytvořeného pro kanál.
Contents
- Obsah
string
. Povinná hodnota. Výchozí hodnota: **
.
Cesty k souborům, které se mají zahrnout jako součást kopie. Tento řetězec podporuje více řádků vzorů shody.
Příklad:
*
zkopíruje všechny soubory v zadané zdrojové složce.**
zkopíruje všechny soubory v zadané zdrojové složce a všechny soubory ve všech podsložkách.**\bin\**
zkopíruje všechny soubory rekurzivně z libovolné složky bin.
Vzor se používá k porovnávání pouze cest k souborům, nikoli ke složkám. Zadejte vzory, například **\bin\**
místo **\bin
.
Použijte oddělovač cesty, který odpovídá vašemu typu agenta sestavení. Musí se například /
použít pro agenty linuxu. Další příklady jsou uvedené níže.
TargetFolder
- Cílová složka
string
. Povinná hodnota.
Cílová složka nebo cesta UNC, která bude obsahovat zkopírované soubory. Můžete použít proměnné. Příklad: $(build.artifactstagingdirectory)
.
CleanTargetFolder
- Vyčistit cílovou složku
boolean
. Výchozí hodnota: false
.
Nepovinný parametr. Odstraní všechny existující soubory v cílové složce před procesem kopírování.
OverWrite
- Přepsat
boolean
. Výchozí hodnota: false
.
Nepovinný parametr. Nahradí existující soubory v cílové složce.
flattenFolders
- Zploštělé složky
boolean
. Výchozí hodnota: false
.
Nepovinný parametr. Zploštěte strukturu složek a zkopíruje všechny soubory do zadané cílové složky.
preserveTimestamp
- Zachovat cílové časové razítko
boolean
. Výchozí hodnota: false
.
Zachová časové razítko cílového souboru pomocí původního zdrojového souboru.
retryCount
- Počet opakování pro zkopírování souboru
string
. Výchozí hodnota: 0
.
Určuje počet opakování pro zkopírování souboru. Tento řetězec je užitečný pro občasné problémy, jako jsou cílové cesty UNC na vzdáleném hostiteli.
delayBetweenRetries
- Zpoždění mezi dvěma opakováními.
string
. Výchozí hodnota: 1000
.
Určuje zpoždění mezi dvěma opakovanými pokusy. Tento řetězec je užitečný pro občasné problémy, jako jsou cílové cesty UNC na vzdáleném hostiteli.
ignoreMakeDirErrors
- Chyby při vytváření cílové složky ignorujte.
boolean
. Výchozí hodnota: false
.
Ignoruje chyby, ke kterým dochází při vytváření cílové složky. Tento řetězec je užitečný, pokud se chcete vyhnout problémům s paralelním spouštěním úloh několika agenty v jedné cílové složce.
Možnosti ovládání úloh
Všechny úlohy mají kromě vstupů také možnosti ovládání. Další informace najdete v tématu Možnosti ovládacího prvku a běžné vlastnosti úlohy.
Výstupní proměnné
Žádné
Poznámky
Pokud se žádné soubory neshodí, bude úkol stále hlásit úspěch.
- Pokud
Overwrite
jefalse
a odpovídající soubor již existuje v cílové složce, úloha neohlásí selhání, ale zaznamená, že soubor již existuje, a přeskočí ho. - Pokud
Overwrite
jetrue
a odpovídající soubor již existuje v cílové složce, odpovídající soubor se přepíše.
Příklady
Kopírování souboru do pracovního adresáře artefaktů a publikování
steps:
- task: CopyFiles@2
inputs:
contents: '_buildOutput/**'
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: $(Build.ArtifactStagingDirectory)
artifactName: MyBuildOutputs
Kopírování spustitelných souborů a souboru readme
Cíl
Chcete zkopírovat jenom soubor readme a soubory potřebné ke spuštění této konzolové aplikace v jazyce C#:
`-- ConsoleApplication1
|-- ConsoleApplication1.sln
|-- readme.txt
`-- ClassLibrary1
|-- ClassLibrary1.csproj
`-- ClassLibrary2
|-- ClassLibrary2.csproj
`-- ConsoleApplication1
|-- ConsoleApplication1.csproj
Poznámka
ConsoleApplication1.sln obsahuje složku bin se soubory .dll a .exe. Pokud chcete zjistit, co se přesune, podívejte se na výsledky níže.
Na kartě $(BuildConfiguration)
Proměnné je nastavena na release
hodnotu .
Příklad s několika vzory shody:
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)'
Příklad s podmínkou OR:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
Contents: |
ConsoleApplication1\ConsoleApplication1\bin\**\?(*.exe|*.dll)
ConsoleApplication1\readme.txt
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Příklad s podmínkou 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)'
Příklad s proměnnými v oddílu obsahu
- task: CopyFiles@2
inputs:
Contents: '$(Build.Repository.LocalPath)/**'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Výsledky
Tyto soubory se zkopírují do pracovního adresáře:
`-- ConsoleApplication1
|-- readme.txt
`-- ConsoleApplication1
`-- bin
`-- Release
| -- ClassLibrary1.dll
| -- ClassLibrary2.dll
| -- ConsoleApplication1.exe
Zkopírujte všechno ze zdrojového adresáře kromě složky .git.
Příklad s několika vzory shody:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: |
**/*
!.git/**/*
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Požadavky
Požadavek | Popis |
---|---|
Typy kanálů | YAML, klasický build |
Běží na | Agent, DeploymentGroup |
Požadavky | Žádné |
Možnosti | Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze. |
Omezení příkazů | Tato úloha se spustí pomocí následujících omezení příkazu: restricted |
Nastavitelné proměnné | Tato úloha má oprávnění k nastavení následujících proměnných: Nastavení proměnných je zakázáno. |
Verze agenta | 2.182.1 nebo vyšší |
Kategorie úloh | Nástroj |
Požadavek | Popis |
---|---|
Typy kanálů | YAML, klasický build |
Běží na | Agent, DeploymentGroup |
Požadavky | Žádné |
Možnosti | Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze. |
Omezení příkazů | Všechny |
Nastavitelné proměnné | Všechny |
Verze agenta | 1.91.0 nebo vyšší |
Kategorie úloh | Nástroj |