Azure Pipelines ile NuGet paketlerini yayımlama (YAML/Klasik)
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Azure Pipelines'ı kullanarak, Klasik veya YAML işlem hatlarını kullanarak NuGet paketlerinizi kuruluşunuzdaki, diğer kuruluşlardaki Azure Artifacts akışlarına ve nuget.org gibi genel kayıt defterlerine yayımlayabilirsiniz. Bu makalede şunları yapmayı öğreneceksiniz:
- Paketleri iç akışa yayımlama
- Paketleri farklı bir kuruluştaki bir akışa yayımlama
- Paket sürümü oluşturma
Önkoşullar
Henüz yapmadıysanız bir Azure DevOps kuruluşu ve proje oluşturun.
Henüz yoksa yeni bir akış oluşturun.
Şirket içinde barındırılan aracı kullanıyorsanız, .NET Core SDK (2.1.400+) ve NuGet (4.8.0.5385+) yüklü olduğundan emin olun.
NuGet paketlerini aynı kuruluştaki bir akışa yayımlama
Not
Azure Pipelines kullanarak paketlerinizi bir akışa yayımlamak için hem Proje Koleksiyonu Derleme Hizmeti'ne hem de projenizin Derleme Hizmeti kimliklerine akış ayarlarınızda atanan Akış Yayımcısı (Katkıda Bulunan) rolü verildiğinden emin olun. Daha fazla ayrıntı için bkz . İzinleri yönetme.
Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.
İşlem hatları'yı ve ardından işlem hattı tanımınızı seçin.
Düzenle'yi seçin ve ardından YAML işlem hattınıza aşağıdaki kod parçacığını ekleyin.
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
Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.
İşlem hatları'yı ve ardından işlem hattı tanımınızı seçin.
Düzenle'yi seçin ve ardından YAML işlem hattınıza aşağıdaki kod parçacığını ekleyin.
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
NuGet paketlerini başka bir kuruluştaki bir akışa yayımlama
NuGet paketlerinizi farklı bir Azure DevOps kuruluşundaki bir akışta yayımlamak için öncelikle hedef kuruluşta bir kişisel erişim belirteci (PAT) oluşturmanız gerekir. Hedef akışınızı barındıran kuruluşa gidin ve Paketleme>Okuma ve yazma kapsamıyla kişisel erişim belirteci oluşturun. PAT oluşturulduktan sonra, bir hizmet bağlantısı kurmak için aşağıdaki bölümde gerek duyacağınız için bunu kopyalayıp güvenli bir konumda depolayın.
İşlem hattınızın çalıştırılacağı Azure DevOps kuruluşunda oturum açın ve projenize gidin.
Proje ayarlarınız>Hizmet bağlantıları'na gidin.
Yeni hizmet bağlantısı'nı, NuGet'i ve ardından İleri'yi seçin.
Kimlik Doğrulama yöntemi olarak Dış Azure DevOps Server'ı seçin ve hedef Akış URL'nizi girin. Daha önce oluşturduğunuz Kişisel Erişim Belirtecini yapıştırın, hizmet bağlantınız için bir ad sağlayın ve Senaryonuz için uygunsa Tüm işlem hatlarına erişim izni ver seçeneğini işaretleyin.
Bitirdiğinizde Kaydet'i seçin.
Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.
İşlem hatları'yı ve ardından işlem hattı tanımınızı seçin.
Düzenle'yi seçin ve ardından YAML işlem hattınıza aşağıdaki kod parçacığını ekleyin.
- 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
Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.
İşlem hatları'yı ve ardından işlem hattı tanımınızı seçin.
Düzenle'yi seçin ve ardından YAML işlem hattınıza aşağıdaki kod parçacığını ekleyin.
- 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
NuGet görev paketi sürümü oluşturma
Azure Pipelines AnlamSal Sürüm Oluşturma'yi destekler ve NuGet görevleri için aşağıdaki yapılandırma seçeneklerini sağlar:
Tarih ve saati kullanma (Klasik) | byPrereleaseNumber (YAML): Paket sürümünüz şu biçimi izler: Major.Minor.Patch-ci-datetime burada Major, Minor ve Patch değerlerini özelleştirme esnekliğine sahip olursunuz.
Ortam değişkeni kullanma (Klasik) | byEnvVar (YAML): Paket sürümünüz belirtilen ortam değişkeninin değerine ayarlanır.
Derleme numarasını kullanma (Klasik) | byBuildNumber (YAML): Paket sürümünüz derleme numarasına ayarlanır. İşlem hattı Seçeneklerinizde derleme numarası biçimini olarak
$(BuildDefinitionName)_$(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r)
tanımladığınızdan emin olun. YAML'de biçimi belirtmek için işlem hattınızın köküne birname:
özellik ekleyin ve biçiminizi tanımlayın.
Aşağıda, tarih ve saat sürümü oluşturma özelliğini kullanarak şu şekilde biçimlendirilmiş SemVer uyumlu bir paket oluşturmayı gösteren bir örnek verilmiştir: 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)'
Not
DotNetCore
ve DotNetStandard
paketleri System.InvalidCastExceptions önlemek için görevle birlikte DotNetCoreCLI@2
paketlenmelidir. Daha fazla ayrıntı için .NET Core CLI görevine bakın.
task: DotNetCoreCLI@2
inputs:
command: pack
versioningScheme: byPrereleaseNumber
majorVersion: '$(Major)'
minorVersion: '$(Minor)'
patchVersion: '$(Patch)'