Udostępnij przez


Publikowanie pakietów NuGet za pomocą usługi Azure Pipelines (YAML/Classic)

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Usługa Azure Pipelines umożliwia deweloperom publikowanie pakietów w kanałach informacyjnych usługi Azure Artifacts w ich organizacji, do kanałów informacyjnych w innych organizacjach oraz do publicznych rejestrów, takich jak nuget.org. W tym artykule wyjaśniono, jak publikować pakiety NuGet zarówno w źródłach wewnętrznych, jak i zewnętrznych, przy użyciu potoków klasycznych i YAML.

Wymagania wstępne

produkt Wymagania
Azure DevOps Organizacja usługi Azure DevOps i projekt.
— Źródło danych usługi Azure Artifacts .
— Jeśli używasz własnego agenta, upewnij się, że ma zainstalowany zestaw SDK platformy .NET Core i pakiet NuGet .
- Uprawnienia:
    — Aby udzielić dostępu do wszystkich potoków w projekcie, musisz być członkiem grupy Administratorzy Projektu .
    — Aby utworzyć połączenia usług, musisz mieć rolę administratora lub twórcy dla połączeń usług.

Uwaga

Jeśli używasz systemu Ubuntu 24.04 lub nowszego, musisz użyć NuGetAuthenticate zadania z interfejsem wiersza polecenia platformy .NET zamiast nuget.exe. Aby uzyskać więcej informacji, zobacz Support for newer Ubuntu hosted images (Obsługa nowszych obrazów hostowanych w systemie Ubuntu).

Publikowanie pakietów NuGet w kanale informacyjnym w tej samej organizacji

Jeśli nie masz jeszcze kanału informacyjnego, możesz utworzyć nowy, w przeciwnym razie wykonaj następujące kroki, aby opublikować pakiet NuGet w kanale informacyjnym w tej samej organizacji:

  1. Zaloguj się do usługi Azure DevOps, a następnie przejdź do projektu.

  2. Wybierz pozycję Potoki, a następnie wybierz definicję potoku.

  3. Wybierz pozycję Edytuj, a następnie dodaj następujący fragment kodu do potoku YAML, aby uwierzytelnić i opublikować pakiet:

    steps:
    - task: NuGetToolInstaller@1                            # Minimum required NuGet version: 4.8.0.5385+.
      displayName: 'NuGet Tool Installer'
    
    - task: NuGetAuthenticate@1                            # Authenticate with Azure Artifacts and other NuGet registries.
      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
    
  1. Zaloguj się do usługi Azure DevOps, a następnie przejdź do projektu.

  2. Wybierz pozycję Potoki, a następnie wybierz definicję potoku.

  3. Wybierz pozycję Edytuj, a następnie dodaj następujący fragment kodu do potoku YAML, aby uwierzytelnić i opublikować pakiet:

    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
    

Uwaga

Aby opublikować pakiety w kanale przy użyciu Azure Pipelines, upewnij się, że zarówno Project Collection Build Service, jak i tożsamości Build Service projektu mają przypisaną rolę Wydawca kanału (Współautor) w ustawieniach kanału. Aby uzyskać więcej informacji, zobacz Zarządzanie uprawnieniami .

Publikowanie pakietów NuGet w kanale informacyjnym w innej organizacji

Aby opublikować pakiety NuGet w kanale informacyjnym w innej organizacji usługi Azure DevOps, należy najpierw utworzyć osobisty token dostępu (PAT) w organizacji docelowej, a następnie utworzyć połączenie z usługą w organizacji, w której działa potok. Następnie możesz użyć połączenia usługi w potoku YAML lub klasycznym, aby uwierzytelnić i opublikować swoje pakiety.

1. Tworzenie osobistego tokenu dostępu

  1. Zaloguj się do organizacji usługi Azure DevOps, która hostuje docelowy kanał informacyjny.

  2. Przejdź do pozycji Ustawienia> użytkownikaOsobiste tokeny dostępu.

  3. Wybierz Nowy token, podaj opisową nazwę, a następnie w obszarze Zakresy wybierz Pakowanie>Odczyt i zapis.

  4. Po zakończeniu wybierz pozycję Utwórz , a następnie skopiuj i zapisz swój identyfikator dostępu w bezpiecznej lokalizacji, ponieważ będzie on potrzebny do skonfigurowania połączenia z usługą.

2. Tworzenie połączenia z usługą

  1. Zaloguj się do organizacji Azure DevOps, w której będzie działać twój potok, a następnie przejdź do projektu.

  2. Przejdź do ustawień >projektu Połączenia usługi.

  3. Wybierz pozycję Nowe połączenie z usługą, wybierz pozycję NuGet, a następnie wybierz pozycję Dalej.

  4. Wybierz pozycję Zewnętrzny serwer Usługi Azure DevOps jako metodę uwierzytelniania, a następnie wprowadź docelowy adres URL kanału informacyjnego. Wklej utworzony wcześniej osobisty token dostępu, podaj nazwę połączenia z usługą i zaznacz pole Wyboru Udziel uprawnień dostępu do wszystkich potoków, jeśli ma to zastosowanie do danego scenariusza.

  5. Wybierz Zapisz, gdy skończysz.

    Zrzut ekranu przedstawiający sposób konfigurowania połączenia usługi NuGet w celu uwierzytelniania za pomocą zewnętrznego źródła danych w innej organizacji.

3. Publikowanie pakietu

  1. Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.

  2. Wybierz pozycję Potoki, a następnie wybierz definicję potoku.

  3. Wybierz pozycję Edytuj, a następnie dodaj następujący fragment kodu do potoku YAML, aby uwierzytelnić i opublikować pakiet:

    - 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       
    
  1. Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.

  2. Wybierz pozycję Potoki, a następnie wybierz definicję potoku.

  3. Wybierz pozycję Edytuj, a następnie dodaj następujący fragment kodu do potoku YAML.

    - task: NuGetToolInstaller@1                            # Minimum required NuGet version: 4.8.0.5385+.
      displayName: 'NuGet Tool Installer'
    
    - task: NuGetAuthenticate@1                            # Authenticate with Azure Artifacts and other NuGet registries.
      inputs:
        nuGetServiceConnections: <SERVICE_CONNECTION_NAME>        # Name of the service connection used to authenticate with feeds across organizations or public registries.
    
    - 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          
    

Zrzut ekranu przedstawiający pomyślnie opublikowany pakiet w kanale informacyjnym w innej organizacji.