Bagikan melalui


Menerbitkan dan mengunduh artefak build

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Catatan

Sebaiknya gunakan Unduh Artefak Alur dan Terbitkan Artefak Alur untuk performa yang lebih cepat.

Azure Artifacts memungkinkan tim menggunakan umpan dan sumber hulu untuk mengelola dependensi mereka. Anda dapat menggunakan Azure Pipelines untuk menerbitkan dan mengunduh berbagai jenis artefak sebagai bagian dari alur kerja CI/CD Anda.

Menerbitkan artefak

Artefak dapat diterbitkan pada setiap tahap alur Anda. Anda dapat menggunakan YAML atau editor Azure DevOps klasik untuk menerbitkan paket Anda.

- 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
  • pathToPublish: jalur artefak Anda. Ini bisa menjadi jalur absolut atau relatif. Kartubebas 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.

Contoh: Menggunakan beberapa tugas

- 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: drop1
- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: '$(Build.ArtifactStagingDirectory)'
    artifactName: drop2
  • pathToPublish: jalur artefak Anda. Ini bisa menjadi jalur absolut atau relatif. Kartubebas tidak didukung.
  • artifactName: nama artefak Anda.

Contoh: Menyalin dan menerbitkan biner

- 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 ini kosong, penyalinan akan dilakukan dari $(Build.SourcesDirectory).
  • konten: Jalur file yang akan disertakan sebagai bagian dari salinan.
  • targetFolder: folder tujuan.
  • pathToPublish: folder atau jalur file yang akan diterbitkan. Ini bisa menjadi jalur absolut atau relatif. Kartubebas tidak didukung.
  • artifactName: nama artefak yang ingin Anda buat.

Catatan

Pastikan untuk tidak menggunakan nama khusus untuk artifactName seperti Bin atau App_Data. Lihat ASP.NET Struktur Folder Proyek Web untuk detail selengkapnya.

Catatan

Build.ArtifactStagingDirectory jalur dibersihkan setelah setiap build. Jika Anda menggunakan jalur ini untuk menerbitkan artefak Anda, pastikan Anda menyalin konten yang ingin Anda terbitkan ke direktori ini sebelum langkah penerbitan.

Mengunduh artefak

- 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.

Catatan

Jika Anda menggunakan tugas penyebaran, Anda dapat mereferensikan artefak build menggunakan $(Agent.BuildDirectory). Lihat Variabel agen untuk detail selengkapnya.

Saat eksekusi alur Anda selesai, navigasikan ke Ringkasan untuk menjelajahi atau mengunduh artefak Anda.

Artefak build yang diterbitkan

Mengunduh artefak tertentu

steps:
- task: DownloadBuildArtifacts@1
  displayName: 'Download Build Artifacts'
  inputs:
    buildType: specific
    project: 'xxxxxxxxxx-xxxx-xxxx-xxxxxxxxxxx'
    pipeline: 20
    buildVersionToDownload: specific
    buildId: 128
    artifactName: drop
    extractTars: false

Tips

  • Nonaktifkan Autentikasi Dasar IIS jika Anda menggunakan Azure DevOps Server untuk mengizinkan autentikasi dengan Token Akses Pribadi Anda. Lihat Autentikasi Dasar dan PAT IIS untuk detail selengkapnya.

  • Gunakan garis miring di argumen jalur file. Garis miring terbelakang tidak berfungsi di agen macOS/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.

  • Build.ArtifactStagingDirectory dan Build.StagingDirectory dapat dipertukarkan.

  • Build.ArtifactStagingDirectory jalur dibersihkan setelah setiap build.

  • Menghapus build yang terkait dengan paket yang diterbitkan ke berbagi file akan mengakibatkan penghapusan semua Artefak di jalur UNC tersebut.

  • Jika Anda menerbitkan paket ke berbagi file, pastikan Anda menyediakan akses ke agen build.

  • Pastikan Anda mengizinkan URL dan alamat IP Domain Artefak Azure jika organisasi Anda menggunakan firewall.