Publikowanie pakietów NuGet za pomocą usługi Azure Pipelines (YAML/Classic)
Artykuł
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Za pomocą usługi Azure Pipelines można publikować pakiety NuGet w źródłach danych usługi Azure Artifacts w organizacji, w innych organizacjach oraz do publicznych rejestrów, takich jak nuget.org, przy użyciu potoków klasycznych lub YAML. Ten artykuł obejmuje następujące zagadnienia:
Publikowanie pakietów w wewnętrznym kanale informacyjnym
Publikowanie pakietów w kanale informacyjnym w innej organizacji
Przejdź do portalu usługi Azure DevOps, a następnie wybierz projekt.
Wybierz pozycję Potoki, a następnie wybierz definicję potoku.
Wybierz pozycję Edytuj, a następnie wybierz + znak, aby dodać nowe zadanie. Dodaj do definicji potoku zadania Narzędzia NuGet, uwierzytelnianie NuGet i wiersz polecenia. Możesz pozostawić instalatora narzędzi NuGet i zadania uwierzytelniania NuGet przy użyciu ich domyślnych ustawień i skonfigurować zadanie wiersza polecenia w następujący sposób:
Nazwa wyświetlana: Wypychanie.
Skrypt:
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
Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz pozycję Potoki, a następnie wybierz definicję potoku.
Wybierz pozycję Edytuj, a następnie wybierz + znak, aby dodać nowe zadanie. Dodaj do definicji potoku zadania Narzędzia NuGet, uwierzytelnianie NuGet i wiersz polecenia. Możesz pozostawić instalatora narzędzi NuGet i zadania uwierzytelniania NuGet przy użyciu ich domyślnych ustawień i skonfigurować zadanie wiersza polecenia w następujący sposób:
Nazwa wyświetlana: Wypychanie.
Skrypt:
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
Uwaga
Aby opublikować pakiety w kanale informacyjnym przy użyciu usługi Azure Pipelines, upewnij się, że zarówno usługa Project Collection Build Service, jak i tożsamości usługi kompilacji projektu mają przypisaną rolę Wydawca źródła danych (współautor) przypisaną w ustawieniach kanału informacyjnego. 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. Przejdź do organizacji obsługującej docelowy kanał informacyjny i utwórz osobisty token dostępu z zakresem odczytu i zapisu>.
Po utworzeniu tokenu dostępu skopiuj go i zapisz w bezpiecznej lokalizacji, ponieważ będzie potrzebny w poniższej sekcji, aby skonfigurować połączenie z usługą.
Zaloguj się do organizacji usługi Azure DevOps, w której zostanie uruchomiony potok, a następnie przejdź do projektu.
Przejdź do ustawień >projektu Połączenia usługi.
Wybierz pozycję Nowe połączenie z usługą, wybierz pozycję NuGet, a następnie wybierz pozycję Dalej.
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.
Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz pozycję Potoki, a następnie wybierz definicję potoku.
Wybierz pozycję Edytuj, a następnie wybierz + znak, aby dodać nowe zadanie. Dodaj do definicji potoku zadania Narzędzia NuGet, uwierzytelnianie NuGet i wiersz polecenia. Instalator narzędzia NuGet można pozostawić z ustawieniami domyślnymi i skonfigurować inne zadania w następujący sposób:
Zadanie uwierzytelniania NuGet: wybierz połączenie usługi z poziomu poświadczeń połączenia z usługą dla kanałów informacyjnych poza tym menu rozwijanym organizacji .
Zadanie wiersza polecenia:
Nazwa wyświetlana: Wypychanie.
Skrypt:
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
Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz pozycję Potoki, a następnie wybierz definicję potoku.
Wybierz pozycję Edytuj, a następnie wybierz + znak, aby dodać nowe zadanie. Dodaj do definicji potoku zadania Narzędzia NuGet, uwierzytelnianie NuGet i wiersz polecenia. Instalator narzędzia NuGet można pozostawić z ustawieniami domyślnymi i skonfigurować inne zadania w następujący sposób:
Zadanie uwierzytelniania NuGet: wybierz połączenie usługi z poziomu poświadczeń połączenia z usługą dla kanałów informacyjnych poza tym menu rozwijanym organizacji .
Zadanie wiersza polecenia:
Nazwa wyświetlana: Wypychanie.
Skrypt:
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
Przechowywanie wersji pakietu zadań NuGet
Usługa Azure Pipelines obsługuje przechowywanie wersji semantycznych i udostępnia następujące opcje konfiguracji dla zadań NuGet:
Używanie daty i godziny (wersja klasyczna) | byPrereleaseNumber (YAML): Wersja pakietu będzie zgodna z formatem: Major.Minor.Patch-ci-datetime , gdzie masz elastyczność dostosowywania wartości Główne, Pomocnicze i Poprawki.
Używanie zmiennej środowiskowej (klasycznej) | byEnvVar (YAML): Wersja pakietu jest ustawiona na wartość określonej zmiennej środowiskowej.
Użyj numeru kompilacji (klasycznego) | byBuildNumber (YAML): Wersja pakietu jest ustawiona na numer kompilacji. Upewnij się, że format numeru kompilacji został zdefiniowany w obszarze Opcje potoku jako $(BuildDefinitionName)_$(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r). Aby określić format w języku YAML, dodaj name: właściwość w katalogu głównym potoku i zdefiniuj format.
Poniżej przedstawiono przykład pokazujący sposób użycia przechowywania wersji daty i godziny w celu wygenerowania pakietu zgodnego ze standardem SemVer w formacie: Major.Minor.Patch-ci-datetime.
DotNetCore pakiety i DotNetStandard powinny być pakowane z zadaniem, aby uniknąć błędu DotNetCoreCLI@2 System.InvalidCastExceptions. Aby uzyskać więcej informacji, zobacz zadanie interfejsu wiersza polecenia platformy .NET Core.
Dołącz do serii meetup, aby tworzyć skalowalne rozwiązania sztucznej inteligencji oparte na rzeczywistych przypadkach użycia z innymi deweloperami i ekspertami.
Przywracanie, pakowanie lub wypychanie pakietów NuGet lub uruchamianie polecenia NuGet. Obsługuje NuGet.org i uwierzytelnione źródła danych, takie jak Azure Artifacts i MyGet. Używa NuGet.exe i współpracuje z aplikacjami .NET Framework. W przypadku aplikacji .NET Core i .NET Standard użyj zadania .NET Core.
Dowiedz się, jak nawiązać połączenie ze źródłem danych usługi Azure Artifacts i opublikować pakiety NuGet przy użyciu interfejsu wiersza polecenia NuGet.
Uzyskuje określoną wersję narzędzia NuGet z Internetu lub pamięci podręcznej narzędzi i dodaje ją do ścieżki. To zadanie służy do zmiany wersji narzędzia NuGet używanej w zadaniach NuGet.