Artefak di Azure Pipelines
| Azure DevOps Services Azure DevOps Server 2020 | | Azure DevOps Server 2019 TFS 2018
Catatan
Sebaiknya tingkatkan dari artefak build (PublishBuildArtifacts@1 dan DownloadBuildArtifacts@0) ke artefak alur (PublishPipelineArtifact@1 dan DownloadPipelineArtifact@2) untuk performa yang lebih cepat.
Azure Artifacts adalah layanan yang memungkinkan tim menggunakan umpan dan sumber hulu untuk mengelola dependensinya. Anda dapat menggunakan Azure Pipelines untuk menerbitkan dan menggunakan berbagai jenis artefak sebagai bagian dari alur kerja CI/CD Anda.
Bagaimana cara menerbitkan artefak?
Artefak dapat diterbitkan pada setiap tahap alur Anda. Anda dapat menggunakan YAML atau editor Azure DevOps klasik untuk menerbitkan paket Anda.
Menerbitkan file teks
- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: drop
- pathToPublish: jalur artefak Anda. Ini bisa menjadi jalur absolut atau relatif. Kartu bebas tidak didukung.
- artifactName: nama artefak Anda.
Catatan
Pastikan Anda tidak menggunakan salah satu nama folder yang dipesan saat menerbitkan artefak Anda. Lihat Folder Aplikasi untuk detail selengkapnya.
YAML tidak didukung di TFS.
Menerbitkan dua set artefak
- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: drop1
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: drop2
- pathToPublish: jalur artefak Anda. Ini bisa menjadi jalur absolut atau relatif. Kartu bebas tidak didukung.
- artifactName: nama artefak Anda.
YAML tidak didukung di TFS.
Contoh: Merakit artefak C++ ke dalam satu lokasi dan menerbitkan sebagai artefak
- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt
- task: CopyFiles@2
inputs:
sourceFolder: '$(Build.SourcesDirectory)'
contents: '**/$(BuildConfiguration)/**/?(*.exe|*.dll|*.pdb)'
targetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: drop
- sourceFolder: folder yang berisi file yang ingin Anda salin. Jika Anda membiarkan nilai ini kosong, penyalinan akan dilakukan dari folder akar repositori Anda (
$(Build.SourcesDirectory)). - konten: lokasi file yang akan disalin ke folder tujuan.
- targetFolder: folder tujuan.
- pathToPublish: folder atau jalur file untuk diterbitkan. Ini bisa menjadi jalur absolut atau relatif, dan kartubebas tidak didukung.
- artifactName: nama artefak yang ingin Anda buat.
Catatan
Anda tidak dapat menggunakan Bin, App_Data dan nama folder lain yang dicadangkan oleh IIS sebagai nama artefak karena konten ini tidak disajikan sebagai respons terhadap permintaan Web. Silakan lihat Struktur Folder Project Web ASP.NET untuk detail selengkapnya.
YAML tidak didukung di TFS.
Bagaimana cara mengonsumsi artefak?
Anda dapat menggunakan artefak dengan cara yang berbeda: Anda dapat menggunakannya dalam alur rilis Anda, meneruskannya di antara pekerjaan alur Anda, mengunduhnya langsung dari alur Anda dan bahkan mengunduhnya dari umpan dan sumber hulu.
Mengonsumsi artefak dalam alur rilis
Anda dapat mengunduh artefak yang dihasilkan oleh alur build (dibuat di editor klasik) atau alur YAML (dibuat melalui file YAML) dalam alur rilis dan menyebarkannya ke target pilihan Anda.
Mengonsumsi artefak dalam pekerjaan berikutnya dari alur Anda
Anda dapat menggunakan artefak yang diproduksi oleh satu pekerjaan dalam pekerjaan alur berikutnya, bahkan ketika pekerjaan itu berada dalam tahap yang berbeda (alur YAML). Ini dapat berguna untuk menguji artefak Anda.
Unduh ke debug
Anda dapat mengunduh artefak langsung dari alur untuk digunakan dalam penelusuran kesalahan.
- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'current'
downloadType: 'single'
artifactName: 'drop'
downloadPath: '$(System.ArtifactsDirectory)'
- buildType: tentukan artefak build mana yang akan diunduh:
current(nilai default) atau dari build tertentu. - downloadType: pilih apakah akan mengunduh satu artefak atau semua artefak dari build tertentu.
- artifactName: nama artefak yang akan diunduh.
- downloadPath: jalur pada mesin agen tempat artefak akan diunduh.
YAML tidak didukung di TFS.
Catatan
Jika Anda menggunakan deployment tugas, Anda kemudian dapat mereferensikan artefak build Anda dengan menggunakan $(Agent.BuildDirectory) variabel. Lihat Variabel agen untuk informasi selengkapnya tentang cara menggunakan variabel yang telah ditentukan sebelumnya.
Tips
PublishBuildArtifacts: menggunakan argumen publishLocation , Anda dapat menyimpan artefak di Azure Pipelines (Kontainer), atau menyalinnya ke berbagi file (FilePath). Berbagi file harus dapat diakses dari agen yang menjalankan alur.Gunakan garis miring di argumen jalur file sehingga berfungsi untuk semua agen. Garis miring terbelakang tidak berfungsi untuk agen macOS dan Linux.
Artefak build disimpan pada sistem file Windows, yang menyebabkan semua izin UNIX hilang, termasuk bit eksekusi. Anda mungkin perlu memulihkan izin UNIX yang benar setelah mengunduh artefak Anda dari Azure Pipelines atau TFS.
Pada Azure Pipelines dan beberapa versi TFS, dua variabel berbeda menunjuk ke direktori penahapan:
Build.ArtifactStagingDirectorydanBuild.StagingDirectory. Ini bisa dipertukarkan.Direktori yang direferensikan oleh
Build.ArtifactStagingDirectorydibersihkan setelah setiap build.Menghapus build yang menerbitkan Artefak ke berbagi file akan mengakibatkan penghapusan semua Artefak di jalur UNC tersebut.
Anda bisa mendapatkan artefak build menggunakan Azure DevOps REST API.
Tugas terkait untuk menerbitkan artefak
Gunakan tugas-tugas ini untuk menerbitkan artefak:
Utilitas: Salin File Dengan menyalin file ke $(Build.ArtifactStagingDirectory), Anda dapat menerbitkan beberapa file dari berbagai jenis dari berbagai tempat yang ditentukan oleh pola pencocokan Anda.
Utilitas: Hapus File Anda dapat memangkas file yang tidak perlu yang Anda salin ke direktori penahapan.
Utilitas: Menerbitkan Artefak Build
Menjelajahi, mengunduh, dan menyebarkan artefak Anda
Setelah build selesai, jika Anda menontonnya berjalan, pilih tab Ringkasan dan lihat artefak Anda di bagian Bangun artefak yang diterbitkan .

Setelah build selesai, jika Anda menontonnya berjalan, pilih nama build yang telah selesai lalu pilih tab Artefak untuk melihat artefak Anda.

Dari sini, Anda dapat menjelajahi atau mengunduh artefak.
Anda juga dapat menggunakan Azure Pipelines untuk menyebarkan aplikasi dengan menggunakan artefak yang telah Anda terbitkan. Lihat Artefak dalam rilis Azure Pipelines.
Menerbitkan dari TFS ke berbagi file UNC
Jika Anda menggunakan agen Windows privat, Anda dapat mengatur opsi lokasi penerbitan artefak (TFS 2018 RTM dan yang lebih lama: jenis artefak) untuk menerbitkan file Anda ke berbagi file UNC.
Catatan
Gunakan agen build Windows. Opsi ini tidak berfungsi untuk agen macOS dan Linux.
Pilih berbagi file untuk menyalin artefak ke berbagi file. Alasan umum untuk melakukan ini:
Ukuran penurunan Anda besar dan menghabiskan terlalu banyak waktu dan bandwidth untuk disalin.
Anda perlu menjalankan beberapa skrip kustom atau alat lain terhadap artefak.
Jika Anda menggunakan berbagi file, tentukan jalur file UNC ke folder. Anda dapat mengontrol bagaimana folder dibuat untuk setiap build dengan menggunakan variabel. Misalnya: \\my\share\$(Build.DefinitionName)\$(Build.BuildNumber).
Menerbitkan artefak dari TFS 2015 RTM
Jika Anda menggunakan TFS 2015 RTM, langkah-langkah dalam contoh sebelumnya tidak tersedia. Sebagai gantinya, Anda menyalin dan menerbitkan artefak Anda dengan menggunakan satu tugas: Build: Terbitkan Artefak Build.
Utilitas: Unduh Artefak Build