NuGet-csomagok közzététele az Azure Pipelines használatával (YAML/Klasszikus)
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Az Azure Pipelines használatával a NuGet-csomagokat közzéteheti a szervezet Azure Artifacts-hírcsatornáiban, más szervezetekben és nyilvános nyilvántartásokban, például nuget.org, klasszikus vagy YAML-folyamatok használatával. Ebből a cikkből megtudhatja, hogyan:
- Csomagok közzététele belső hírcsatornában
- Csomagok közzététele egy másik szervezet hírcsatornájában
- Csomag verziószámozása
Előfeltételek
Ha még nem tette meg, hozzon létre egy Azure DevOps-szervezetet és egy projektet.
Hozzon létre egy új hírcsatornát , ha még nem rendelkezik ilyen hírcsatornával .
Ha önkiszolgáló ügynököt használ, győződjön meg arról, hogy a .NET Core SDK (2.1.400+) és a NuGet (4.8.0.5385+) telepítve van.
NuGet-csomagok közzététele egy hírcsatornában ugyanabban a szervezetben
Feljegyzés
Ha az Azure Pipelines használatával szeretné közzétenni a csomagjait egy hírcsatornában, győződjön meg arról, hogy a Projektgyűjtemény buildelési szolgáltatása és a projekt buildszolgáltatás-identitásai is megkapják a hírcsatorna-beállításokban hozzárendelt Hírcsatorna-közzétevői (közreműködői) szerepkört. További részletekért lásd : Engedélyek kezelése.
Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.
Válassza a Folyamatok lehetőséget, majd válassza ki a folyamatdefiníciót.
Válassza a Szerkesztés lehetőséget, majd adja hozzá a következő kódrészletet a YAML-folyamathoz.
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
Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.
Válassza a Folyamatok lehetőséget, majd válassza ki a folyamatdefiníciót.
Válassza a Szerkesztés lehetőséget, majd adja hozzá a következő kódrészletet a YAML-folyamathoz.
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-csomagok közzététele egy másik szervezet hírcsatornájában
Ha a NuGet-csomagokat egy másik Azure DevOps-szervezetben lévő hírcsatornán szeretné közzétenni, először létre kell hoznia egy személyes hozzáférési jogkivonatot (PAT) a célszervezetben. Lépjen a célcsatornát üzemeltető szervezethez, és hozzon létre egy személyes hozzáférési jogkivonatot a Csomagolás>olvasása és írási hatókörével. A PAT létrehozása után másolja és tárolja biztonságos helyen, mivel a következő szakaszban szüksége lesz rá egy szolgáltatáskapcsolat beállításához.
Jelentkezzen be az Azure DevOps-szervezetbe, ahol a folyamat futni fog, majd lépjen a projekthez.
Lépjen a Project settings>Service-kapcsolatokra.
Válassza az Új szolgáltatáskapcsolat lehetőséget, válassza a NuGet, majd a Tovább lehetőséget.
Hitelesítési módszerként válassza a külső Azure DevOps Servert, majd adja meg a célcsatorna URL-címét. Illessze be a korábban létrehozott személyes hozzáférési jogkivonatot , adjon nevet a szolgáltatáskapcsolatnak, és ellenőrizze , hogy az adott forgatókönyvhöz megfelelő-e hozzáférési engedély megadása az összes folyamathoz .
Ha végzett, válassza a Mentés lehetőséget.
Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.
Válassza a Folyamatok lehetőséget, majd válassza ki a folyamatdefiníciót.
Válassza a Szerkesztés lehetőséget, majd adja hozzá a következő kódrészletet a YAML-folyamathoz.
- 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
Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.
Válassza a Folyamatok lehetőséget, majd válassza ki a folyamatdefiníciót.
Válassza a Szerkesztés lehetőséget, majd adja hozzá a következő kódrészletet a YAML-folyamathoz.
- 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-feladatcsomag verziószámozása
Az Azure Pipelines támogatja a szemantikus verziószámozást , és a NuGet-feladatokhoz a következő konfigurációs beállításokat biztosítja:
A dátum és az idő használata (klasszikus) | byPrereleaseNumber (YAML): A csomag verziója a Következő formátumot fogja követni: Major.Minor.Patch-ci-datetime , ahol rugalmasan szabhatja testre a Fő, Alverzió és Javítás értékeket.
Környezeti változó használata (klasszikus) | byEnvVar (YAML): A csomag verziója a megadott környezeti változó értékére van állítva.
A buildszám használata (klasszikus) | byBuildNumber (YAML): A csomag verziója a buildszámra van állítva. Győződjön meg arról, hogy a buildszám formátumát a folyamat beállításai
$(BuildDefinitionName)_$(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r)
között adja meg. Ha meg szeretné adni a formátumot a YAML-ben, adjon hozzá egy tulajdonságotname:
a folyamat gyökeréhez, és határozza meg a formátumot.
Az alábbi példa bemutatja, hogyan használható a dátum és az idő verziószámozása egy SemVer-kompatibilis csomag létrehozásához a következő formátumban: 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)'
Feljegyzés
DotNetCore
és DotNetStandard
a csomagokat a feladattal együtt kell csomagolni a DotNetCoreCLI@2
System.InvalidCastExceptions elkerülése érdekében. További részletekért tekintse meg a .NET Core CLI-feladatot .
task: DotNetCoreCLI@2
inputs:
command: pack
versioningScheme: byPrereleaseNumber
majorVersion: '$(Major)'
minorVersion: '$(Minor)'
patchVersion: '$(Patch)'