CopyFiles@2 - Menyalin file tugas v2
Gunakan tugas ini untuk menyalin file dari folder sumber ke folder target menggunakan pola pencocokan. (Pola pencocokan hanya akan cocok dengan jalur file, bukan jalur folder).
Sintaks
# 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.
Input
SourceFolder
- Folder Sumber
string
.
Pilihan. Folder yang berisi file yang ingin Anda salin. Jika folder kosong, maka tugas menyalin file dari folder akar repositori seolah-olah $(Build.SourcesDirectory)
ditentukan.
Jika build Anda menghasilkan artefak di luar direktori sumber, tentukan $(Agent.BuildDirectory)
untuk menyalin file dari direktori yang dibuat untuk alur.
Contents
- Isi
string
. Wajib diisi. Nilai default: **
.
Jalur file yang akan disertakan sebagai bagian dari salinan. String ini mendukung beberapa baris pola pencocokan.
Contohnya:
*
menyalin semua file dalam folder sumber yang ditentukan.**
menyalin semua file dalam folder sumber yang ditentukan dan semua file di semua sub-folder.**\bin\**
menyalin semua file secara rekursif dari folder bin apa pun.
Pola ini digunakan untuk mencocokkan hanya jalur file, bukan jalur folder. Tentukan pola, seperti **\bin\**
alih-alih **\bin
.
Gunakan pemisah jalur yang cocok dengan jenis agen build Anda. Misalnya, /
harus digunakan untuk agen Linux. Contoh lainnya ditunjukkan di bawah ini.
TargetFolder
- Target Folder
string
. Wajib diisi.
Folder target atau jalur UNC yang akan berisi file yang disalin. Anda dapat menggunakan variabel. Contoh: $(build.artifactstagingdirectory)
.
CleanTargetFolder
- Bersihkan Folder Target
boolean
. Nilai default: false
.
Pilihan. Menghapus semua file yang ada di folder target sebelum proses penyalinan.
OverWrite
- Menimpa
boolean
. Nilai default: false
.
Pilihan. Menggantikan file yang ada di folder target.
flattenFolders
- Meratakan Folder
boolean
. Nilai default: false
.
Pilihan. Meratakan struktur folder dan menyalin semua file ke dalam folder target yang ditentukan.
preserveTimestamp
- Pertahankan Tanda Waktu Target
boolean
. Nilai default: false
.
Pertahankan tanda waktu file target dengan menggunakan file sumber asli.
retryCount
- Coba lagi hitungan untuk menyalin file
string
. Nilai default: 0
.
Menentukan jumlah coba lagi untuk menyalin file. String ini berguna untuk masalah terputus-terputus, seperti jalur target UNC pada host jarak jauh.
delayBetweenRetries
- Penundaan antara dua percobaan ulang.
string
. Nilai default: 1000
.
Menentukan penundaan antara dua percobaan ulang. String ini berguna untuk masalah terputus-terputus, seperti jalur target UNC pada host jarak jauh.
ignoreMakeDirErrors
- Abaikan kesalahan selama pembuatan folder target.
boolean
. Nilai default: false
.
Mengabaikan kesalahan yang terjadi selama pembuatan folder target. String ini berguna untuk menghindari masalah dengan eksekusi tugas paralel oleh beberapa agen dalam satu folder target.
Opsi kontrol tugas
Semua tugas memiliki opsi kontrol selain input tugas mereka. Untuk informasi selengkapnya, lihat Opsi kontrol dan properti tugas umum.
Variabel output
Tidak ada.
Keterangan
Jika tidak ada file yang cocok, tugas akan tetap melaporkan keberhasilan.
- Jika
Overwrite
adalahfalse
dan file yang cocok sudah ada di folder target, tugas tidak akan melaporkan kegagalan tetapi mencatat bahwa file sudah ada dan melewatinya. - Jika
Overwrite
adalahtrue
dan file yang cocok sudah ada di folder target, file yang cocok akan ditimpa.
Contoh
Menyalin file ke direktori penahapan artefak dan menerbitkan
steps:
- task: CopyFiles@2
inputs:
contents: '_buildOutput/**'
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: $(Build.ArtifactStagingDirectory)
artifactName: MyBuildOutputs
Menyalin file executable dan readme
Tujuan
Anda hanya ingin menyalin readme dan file yang diperlukan untuk menjalankan aplikasi konsol C# ini:
`-- ConsoleApplication1
|-- ConsoleApplication1.sln
|-- readme.txt
`-- ClassLibrary1
|-- ClassLibrary1.csproj
`-- ClassLibrary2
|-- ClassLibrary2.csproj
`-- ConsoleApplication1
|-- ConsoleApplication1.csproj
Catatan
ConsoleApplication1.sln berisi folder bin dengan file .dll dan .exe, lihat Hasil di bawah ini untuk melihat apa yang akan dipindahkan!
Pada tab Variabel, $(BuildConfiguration)
diatur ke release
.
Contoh dengan beberapa pola kecocokan:
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)'
Contoh dengan kondisi OR:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
Contents: |
ConsoleApplication1\ConsoleApplication1\bin\**\?(*.exe|*.dll)
ConsoleApplication1\readme.txt
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Contoh dengan kondisi 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)'
Contoh dengan variabel di bagian konten
- task: CopyFiles@2
inputs:
Contents: '$(Build.Repository.LocalPath)/**'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Hasil
File-file ini disalin ke direktori penahapan:
`-- ConsoleApplication1
|-- readme.txt
`-- ConsoleApplication1
`-- bin
`-- Release
| -- ClassLibrary1.dll
| -- ClassLibrary2.dll
| -- ConsoleApplication1.exe
Salin semuanya dari direktori sumber kecuali folder .git
Contoh dengan beberapa pola kecocokan:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: |
**/*
!.git/**/*
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Persyaratan
Persyaratan | Deskripsi |
---|---|
Jenis alur | YAML, Build klasik |
Berjalan pada | Agen, DeploymentGroup |
Permintaan | Tidak ada |
Kemampuan | Tugas ini tidak memenuhi tuntutan apa pun untuk tugas berikutnya dalam pekerjaan. |
Pembatasan perintah | Tugas ini berjalan menggunakan pembatasan perintah berikut: dibatasi |
Variabel yang dapat diatur | Tugas ini memiliki izin untuk mengatur variabel berikut: Pengaturan variabel dinonaktifkan |
Versi agen | 2.182.1 atau lebih tinggi |
Kategori tugas | Utilitas |
Persyaratan | Deskripsi |
---|---|
Jenis alur | YAML, Build klasik |
Berjalan pada | Agen, DeploymentGroup |
Permintaan | Tidak ada |
Kemampuan | Tugas ini tidak memenuhi tuntutan apa pun untuk tugas berikutnya dalam pekerjaan. |
Pembatasan perintah | Apa pun |
Variabel yang dapat diatur | Apa pun |
Versi agen | 1.91.0 atau lebih tinggi |
Kategori tugas | Utilitas |
Lihat juga
- Referensi pola pencocokan file
- Bagaimana cara menggunakan tugas ini untuk menerbitkan artefak
- Pelajari cara menggunakan log verbose untuk pemecahan masalah.