Menerbitkan paket NuGet dengan Azure Pipelines (YAML/Klasik)
Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019
Dengan menggunakan Azure Pipelines, Anda dapat menerbitkan paket NuGet ke umpan Azure Artifacts di organisasi Anda, di organisasi lain, dan ke registri publik seperti nuget.org, menggunakan alur Klasik atau YAML. Dalam artikel ini, Anda akan mempelajari cara:
- Menerbitkan paket ke umpan internal
- Menerbitkan paket ke umpan di organisasi lain
- Penerapan versi paket
Prasyarat
Buat organisasi Azure DevOps dan proyek jika Anda belum melakukannya.
Jika Anda menggunakan agen yang dihost sendiri, pastikan agen tersebut telah menginstal .NET Core SDK (2.1.400+) dan NuGet (4.8.0.5385+).
Menerbitkan paket NuGet ke umpan di organisasi yang sama
Catatan
Untuk menerbitkan paket Anda ke umpan menggunakan Azure Pipelines, pastikan bahwa Project Collection Build Service dan identitas Build Service proyek Anda diberikan peran Penerbit Umpan (Kontributor) yang ditetapkan di pengaturan umpan Anda. Lihat Mengelola izin untuk detail selengkapnya.
Masuk ke organisasi Azure DevOps Anda, lalu navigasikan ke proyek Anda.
Pilih Alur, lalu pilih definisi alur Anda.
Pilih Edit, lalu tambahkan cuplikan berikut ke alur YAML Anda.
steps:
- task: NuGetToolInstaller@1 # Minimum required NuGet version: 4.8.0.5385+.
displayName: 'NuGet Tool Installer'
- task: NuGetAuthenticate@0
displayName: 'NuGet Authenticate'
- script: |
nuget.exe push -Source "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" -ApiKey az $(Build.ArtifactStagingDirectory)\*.nupkg
displayName: Push
Masuk ke organisasi Azure DevOps Anda, lalu navigasikan ke proyek Anda.
Pilih Alur, lalu pilih definisi alur Anda.
Pilih Edit, lalu tambahkan cuplikan berikut ke alur YAML Anda.
steps:
- task: NuGetToolInstaller@1 # Minimum required NuGet version: 4.8.0.5385+.
displayName: 'NuGet Tool Installer'
- task: NuGetAuthenticate@1
displayName: 'NuGet Authenticate'
- script: |
nuget.exe push -Source "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" -ApiKey az $(Build.ArtifactStagingDirectory)\*.nupkg
displayName: Push
Menerbitkan paket NuGet ke umpan di organisasi lain
Untuk menerbitkan paket NuGet Anda ke umpan di organisasi Azure DevOps yang berbeda, Anda harus terlebih dahulu membuat token akses pribadi (PAT) di organisasi target. Navigasi ke organisasi yang menghosting umpan target Anda dan Buat token akses pribadi dengan Kemasan>Baca & tulis cakupan. Setelah PAT dibuat, salin dan simpan di lokasi yang aman, karena Anda akan membutuhkannya di bagian berikut untuk menyiapkan koneksi layanan.
Masuk ke organisasi Azure DevOps tempat alur Anda akan berjalan, lalu navigasikan ke proyek Anda.
Navigasikan ke pengaturan Proyek>Koneksi layanan Anda.
Pilih Koneksi layanan baru, pilih NuGet, lalu pilih Berikutnya.
Pilih Server Azure DevOps Eksternal sebagai metode Autentikasi, lalu masukkan URL Umpan target Anda. Tempelkan Token Akses Pribadi yang Anda buat sebelumnya, berikan nama untuk koneksi layanan Anda, dan centang Berikan izin akses ke semua alur jika berlaku untuk skenario Anda.
Pilih Simpan saat Anda selesai.
Masuk ke organisasi Azure DevOps Anda, lalu navigasikan ke proyek Anda.
Pilih Alur, lalu pilih definisi alur Anda.
Pilih Edit, lalu tambahkan cuplikan berikut ke alur YAML Anda.
- task: NuGetToolInstaller@1 # Minimum required NuGet version: 4.8.0.5385+. displayName: 'NuGet Tool Installer' - task: NuGetAuthenticate@1 inputs: nuGetServiceConnections: <SERVICE_CONNECTION_NAME> - script: | nuget.exe push -Source "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" -ApiKey az $(Build.ArtifactStagingDirectory)\*.nupkg displayName: Push
Masuk ke organisasi Azure DevOps Anda, lalu navigasikan ke proyek Anda.
Pilih Alur, lalu pilih definisi alur Anda.
Pilih Edit, lalu tambahkan cuplikan berikut ke alur YAML Anda.
- task: NuGetToolInstaller@1 # Minimum required NuGet version: 4.8.0.5385+. displayName: 'NuGet Tool Installer' - task: NuGetAuthenticate@0 inputs: nuGetServiceConnections: <SERVICE_CONNECTION_NAME> - script: | nuget.exe push -Source "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" -ApiKey az $(Build.ArtifactStagingDirectory)\*.nupkg displayName: Push
Penerapan versi paket tugas NuGet
Azure Pipelines mendukung Penerapan Versi Semantik dan menyediakan opsi konfigurasi berikut untuk tugas NuGet:
Gunakan tanggal dan waktu (Klasik) | byPrereleaseNumber (YAML): Versi paket Anda akan mengikuti format: Major.Minor.Patch-ci-datetime di mana Anda memiliki fleksibilitas untuk menyesuaikan nilai Mayor, Minor, dan Patch.
Menggunakan variabel lingkungan (Klasik) | byEnvVar (YAML): Versi paket Anda diatur ke nilai variabel lingkungan yang ditentukan.
Menggunakan nomor build (Klasik) | byBuildNumber (YAML): Versi paket Anda diatur ke nomor build. Pastikan Anda menentukan format nomor build di Opsi alur Anda sebagai
$(BuildDefinitionName)_$(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r)
. Untuk menentukan format dalam YAML, tambahkanname:
properti di akar alur Anda dan tentukan format Anda.
Berikut ini adalah contoh yang menunjukkan cara menggunakan penerapan versi tanggal dan waktu untuk menghasilkan paket yang sesuai dengan SemVer yang diformat sebagai: Major.Minor.Patch-ci-datetime.
variables:
Major: '1'
Minor: '0'
Patch: '0'
steps:
- task: NuGetCommand@2
inputs:
command: pack
versioningScheme: byPrereleaseNumber
majorVersion: '$(Major)'
minorVersion: '$(Minor)'
patchVersion: '$(Patch)'
Catatan
DotNetCore
dan DotNetStandard
paket harus dipaketkan dengan DotNetCoreCLI@2
tugas untuk menghindari System.InvalidCastExceptions. Lihat tugas .NET Core CLI untuk detail selengkapnya.
task: DotNetCoreCLI@2
inputs:
command: pack
versioningScheme: byPrereleaseNumber
majorVersion: '$(Major)'
minorVersion: '$(Minor)'
patchVersion: '$(Patch)'