Megosztás a következőn keresztül:


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

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.

  1. Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.

  2. Válassza a Folyamatok lehetőséget, majd válassza ki a folyamatdefiníciót.

  3. 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" --api-key az $(Build.ArtifactStagingDirectory)\*.nupkg
  displayName: Push
  1. Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.

  2. Válassza a Folyamatok lehetőséget, majd válassza ki a folyamatdefiníciót.

  3. 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" --api-key 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.

  1. Jelentkezzen be az Azure DevOps-szervezetbe, ahol a folyamat futni fog, majd lépjen a projekthez.

  2. Lépjen a Project settings>Service-kapcsolatokra.

  3. Válassza az Új szolgáltatáskapcsolat lehetőséget, válassza a NuGet, majd a Tovább lehetőséget.

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

  5. Ha végzett, válassza a Mentés lehetőséget.

    Képernyőkép arról, hogyan állíthat be NuGet-szolgáltatáskapcsolatot egy másik szervezet külső hírcsatornájával való hitelesítéshez.

  1. Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.

  2. Válassza a Folyamatok lehetőséget, majd válassza ki a folyamatdefiníciót.

  3. 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" --api-key az $(Build.ArtifactStagingDirectory)\*.nupkg
      displayName: Push       
    
  1. Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.

  2. Válassza a Folyamatok lehetőséget, majd válassza ki a folyamatdefiníciót.

  3. 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" --api-key az $(Build.ArtifactStagingDirectory)\*.nupkg
      displayName: Push          
    

Képernyőkép arról, hogy a csomag sikeresen közzé van téve egy másik szervezet hírcsatornájában.

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ágot name: 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)'