CopyFiles@2 — kopiowanie plików w wersji 2
To zadanie służy do kopiowania plików z folderu źródłowego do folderu docelowego przy użyciu wzorców dopasowania. (Wzorce dopasowania będą zgodne tylko ze ścieżkami plików, a nie ścieżkami folderów).
Składnia
# 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.
Dane wejściowe
SourceFolder
- Folder źródłowy
string
.
Opcjonalny. Folder zawierający pliki, które chcesz skopiować. Jeśli folder jest pusty, zadanie kopiuje pliki z folderu głównego repozytorium tak, jakby $(Build.SourcesDirectory)
zostało określone.
Jeśli kompilacja tworzy artefakty poza katalogiem źródeł, określ $(Agent.BuildDirectory)
, aby skopiować pliki z katalogu utworzonego dla potoku.
Contents
- Zawartość
string
. Wymagane. Wartość domyślna: **
.
Ścieżki plików do uwzględnienia w ramach kopii. Ten ciąg obsługuje wiele wierszy wzorców dopasowania.
Na przykład:
*
kopiuje wszystkie pliki w określonym folderze źródłowym.**
kopiuje wszystkie pliki w określonym folderze źródłowym i wszystkie pliki we wszystkich podfolderach.**\bin\**
kopiuje wszystkie pliki cyklicznie z dowolnego folderu bin.
Wzorzec służy do dopasowywania tylko ścieżek plików, a nie ścieżek folderów. Określ wzorce, takie jak **\bin\**
zamiast **\bin
.
Użyj separatora ścieżki zgodnego z typem agenta kompilacji. Na przykład /
należy użyć dla agentów systemu Linux. Poniżej przedstawiono więcej przykładów.
TargetFolder
- Folder docelowy
string
. Wymagane.
Folder docelowy lub ścieżka UNC, która będzie zawierać skopiowane pliki. Możesz użyć zmiennych. Przykład: $(build.artifactstagingdirectory)
.
CleanTargetFolder
- Wyczyść folder docelowy
boolean
. Wartość domyślna: false
.
Opcjonalny. Usuwa wszystkie istniejące pliki w folderze docelowym przed procesem kopiowania.
OverWrite
- Zastąpić
boolean
. Wartość domyślna: false
.
Opcjonalny. Zastępuje istniejące pliki w folderze docelowym.
flattenFolders
- Spłaszczać foldery
boolean
. Wartość domyślna: false
.
Opcjonalny. Spłaszcza strukturę folderów i kopiuje wszystkie pliki do określonego folderu docelowego.
preserveTimestamp
- Zachowaj znacznik czasu docelowego
boolean
. Wartość domyślna: false
.
Zachowuje znacznik czasu pliku docelowego przy użyciu oryginalnego pliku źródłowego.
retryCount
- Liczba ponownych prób w celu skopiowania pliku
string
. Wartość domyślna: 0
.
Określa liczbę ponownych prób, aby skopiować plik. Ten ciąg jest przydatny w przypadku sporadycznych problemów, takich jak ścieżki docelowe UNC na hoście zdalnym.
delayBetweenRetries
- Opóźnienie między dwoma ponownych próbami.
string
. Wartość domyślna: 1000
.
Określa opóźnienie między dwoma ponownymi próbami. Ten ciąg jest przydatny w przypadku sporadycznych problemów, takich jak ścieżki docelowe UNC na hoście zdalnym.
ignoreMakeDirErrors
- Ignoruj błędy podczas tworzenia folderu docelowego.
boolean
. Wartość domyślna: false
.
Ignoruje błędy występujące podczas tworzenia folderu docelowego. Ten ciąg jest przydatny w celu uniknięcia problemów z równoległym wykonywaniem zadań przez kilku agentów w jednym folderze docelowym.
Opcje sterowania zadania
Wszystkie zadania mają opcje sterowania oprócz danych wejściowych zadań. Aby uzyskać więcej informacji, zobacz Opcje sterowania i typowe właściwości zadań.
Zmienne wyjściowe
Brak.
Uwagi
Jeśli żadne pliki nie są zgodne, zadanie będzie nadal zgłaszać powodzenie.
- Jeśli
Overwrite
plik jestfalse
i plik pasujący już istnieje w folderze docelowym, zadanie nie zgłosi niepowodzenia, ale zarejestruje, że plik już istnieje i pominąć go. - Jeśli
Overwrite
plik jesttrue
i dopasowany plik już istnieje w folderze docelowym, dopasowany plik zostanie zastąpiony.
Przykłady
Kopiowanie pliku do katalogu przejściowego artefaktów i publikowanie
steps:
- task: CopyFiles@2
inputs:
contents: '_buildOutput/**'
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: $(Build.ArtifactStagingDirectory)
artifactName: MyBuildOutputs
Kopiowanie plików wykonywalnych i pliku readme
Cel
Chcesz skopiować tylko plik readme i pliki potrzebne do uruchomienia tej aplikacji konsolowej języka C#:
`-- ConsoleApplication1
|-- ConsoleApplication1.sln
|-- readme.txt
`-- ClassLibrary1
|-- ClassLibrary1.csproj
`-- ClassLibrary2
|-- ClassLibrary2.csproj
`-- ConsoleApplication1
|-- ConsoleApplication1.csproj
Uwaga
ConsoleApplication1.sln zawiera folder bin z plikami .dll i .exe, zobacz wyniki poniżej, aby zobaczyć, co zostanie przeniesione!
Na karcie $(BuildConfiguration)
Zmienne ustawiono wartość release
.
Przykład z wieloma wzorcami dopasowania:
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)'
Przykład z warunkiem OR:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
Contents: |
ConsoleApplication1\ConsoleApplication1\bin\**\?(*.exe|*.dll)
ConsoleApplication1\readme.txt
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Przykład z warunkiem 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)'
Przykład ze zmiennymi w sekcji zawartości
- task: CopyFiles@2
inputs:
Contents: '$(Build.Repository.LocalPath)/**'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Wyniki
Te pliki są kopiowane do katalogu przejściowego:
`-- ConsoleApplication1
|-- readme.txt
`-- ConsoleApplication1
`-- bin
`-- Release
| -- ClassLibrary1.dll
| -- ClassLibrary2.dll
| -- ConsoleApplication1.exe
Skopiuj wszystko z katalogu źródłowego z wyjątkiem folderu .git
Przykład z wieloma wzorcami dopasowania:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: |
**/*
!.git/**/*
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Wymagania
Wymaganie | Opis |
---|---|
Typy potoków | YAML, kompilacja klasyczna |
Działa na | Agent, DeploymentGroup |
Wymagania | Brak |
Możliwości | To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu. |
Ograniczenia poleceń | To zadanie jest uruchamiane przy użyciu następujących ograniczeń poleceń: ograniczone |
Zmienne w formie tabeli settable | To zadanie ma uprawnienia do ustawiania następujących zmiennych: Ustawienie zmiennych jest wyłączone |
Wersja agenta | 2.182.1 lub nowsza |
Kategoria zadania | Narzędzie |
Wymaganie | Opis |
---|---|
Typy potoków | YAML, kompilacja klasyczna |
Działa na | Agent, DeploymentGroup |
Wymagania | Brak |
Możliwości | To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu. |
Ograniczenia poleceń | Dowolne |
Zmienne w formie tabeli settable | Dowolne |
Wersja agenta | 1.91.0 lub nowszy |
Kategoria zadania | Narzędzie |