Udostępnij za pośrednictwem


Źródła artefaktów w klasycznych potokach wydania

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Za pomocą klasycznych potoków wydania można wdrażać artefakty z szerokiego zakresu źródeł. Za pomocą interfejsu graficznego możesz skonfigurować potok w celu zintegrowania artefaktów z różnych usług i korzystania z nich. Ponadto można połączyć wiele artefaktów z różnych źródeł i wyznaczyć je jako źródło podstawowe na podstawie Twoich potrzeb.

Źródła artefaktów

Usługa Azure Pipelines obsługuje szeroką gamę repozytoriów, usług i platform ciągłej integracji/ciągłego wdrażania. Podczas tworzenia wydania można określić wersję źródła artefaktu. Domyślnie wydania używają najnowszej wersji artefaktu źródłowego. Możesz również użyć najnowszej kompilacji z określonej gałęzi, określając tagi, określoną wersję lub zezwolić użytkownikowi na określenie wersji w momencie tworzenia wydania.

Zrzut ekranu przedstawiający sposób dodawania artefaktu do klasycznego potoku wydania.

Jeśli łączysz wiele artefaktów, możesz określić, który z nich jest podstawowym źródłem (ustawienie domyślne). Podstawowe źródło artefaktu służy do ustawiania kilku wstępnie zdefiniowanych zmiennych , a także może służyć do nazewnictwa wydań.

Zrzut ekranu przedstawiający sposób ustawiania podstawowego artefaktu źródłowego.

Opcje listy rozwijanej Domyślna wersja zależą od typu źródłowego połączonej definicji kompilacji. Opcje Specify at the time of release creation, Specific versioni Latest są obsługiwane przez wszystkie typy repozytoriów. Latest from the build pipeline default branch with tags Nie jest jednak obsługiwane przez definicje kompilacji XAML.

W poniższych sekcjach opisano sposób pracy z różnymi typami źródeł artefaktów:

Uwaga

W przypadku korzystania z wielu źródeł artefaktów mapowanie źródła artefaktu w celu wyzwolenia określonego etapu nie jest obsługiwane. Jeśli potrzebujesz tej funkcji, usługa Azure Pipelines zaleca podzielenie potoku wydania na wiele wersji.

Azure Pipelines

Możesz połączyć klasyczny potok wydania z dowolnym artefaktem potoku. Ponadto można połączyć wiele artefaktów i skonfigurować wyzwalacze wdrażania w wielu źródłach kompilacji. Ta konfiguracja spowoduje utworzenie wydania za każdym razem, gdy nowa kompilacja stanie się dostępna. Następujące funkcje są dostępne w przypadku korzystania z usługi Azure Pipelines jako źródła artefaktów:

Funkcja opis
Wersje wyzwalacza automatycznego Nowe wydania można tworzyć automatycznie, gdy jest dostępny nowy artefakt (w tym kompilacje XAML). Aby uzyskać więcej informacji, zobacz Wyzwalacze wersji klasycznej .
Zmienne artefaktu Wiele zmiennych artefaktów jest obsługiwanych w przypadku artefaktów, do których odwołuje się wersja klasyczna.
Elementy robocze i zatwierdzenia Połącz elementy robocze, aby wyświetlić je w szczegółach wydania. Zatwierdzenia będą wyświetlane podczas korzystania z usługi Git lub serwera TFVC.
Pobieranie artefaktu Domyślnie artefakty potoku są pobierane do agenta uruchamiającego potok. Możesz również skonfigurować krok na etapie, aby w razie potrzeby pominąć pobieranie artefaktu.
Etapy wdrażania Podsumowanie potoku zawiera listę wszystkich etapów wdrażania, w których wdrożono artefakt.

Uwaga

Aby opublikować artefakt potoku w potoku klasycznym, należy dodać do potoku zadanie PublishPipelineArtifact . W potokach YAML artefakt upuszczania jest publikowany niejawnie.

Ograniczanie zakresu autoryzacji zadania

Domyślnie wersje są uruchamiane z zakresem autoryzacji zadań na poziomie organizacji, umożliwiając im dostęp do zasobów we wszystkich projektach w organizacji. Jest to przydatne podczas łączenia artefaktów potoku z innych projektów. Aby ograniczyć dostęp do artefaktów projektu, możesz włączyć zakres autoryzacji zadania Limit do bieżącego projektu dla potoków wydania w ustawieniach projektu

Aby ustawić zakres autoryzacji zadania dla organizacji:

  1. Zaloguj się do organizacji usługi Azure DevOps.

  2. Wybierz pozycję Ustawienia organizacji w lewym dolnym rogu.

  3. Wybierz pozycję Potoki> *Ustawienia.

  4. Włącz przełącznik Ogranicz zakres autoryzacji zadania do bieżącego projektu dla potoków wydania, aby ograniczyć zakres do bieżącego projektu. Zaleca się zwiększenie bezpieczeństwa.

    Zrzut ekranu przedstawiający sposób ustawiania zakresu autoryzacji zadania dla organizacji.

Aby ustawić zakres autoryzacji zadania dla określonego projektu:

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

  2. Wybierz pozycję Ustawienia projektu w lewym dolnym rogu.

  3. Wybierz pozycję Potoki> *Ustawienia.

  4. Włącz przełącznik Ogranicz zakres autoryzacji zadania do bieżącego projektu dla potoków wydania, aby ograniczyć zakres do bieżącego projektu. To ustawienie jest zalecane w celu zwiększenia bezpieczeństwa potoków.

    Zrzut ekranu przedstawiający sposób ustawiania zakresu autoryzacji zadania dla projektu.

Uwaga

Jeśli zakres jest ustawiony na poziomie organizacji, nie można go zmienić indywidualnie w każdym projekcie.

Uwaga

Domyślnie wersje są uruchamiane z zakresem autoryzacji zadań na poziomie kolekcji, co umożliwia im dostęp do zasobów we wszystkich projektach w kolekcji.

Azure Repos, GitHub i TFVC

Istnieją scenariusze, w których możesz chcieć korzystać z artefaktów bezpośrednio z różnych kontrolek źródła bez przekazywania ich przez potok kompilacji. Na przykład:

  • Tworzenie aplikacji PHP lub JavaScript, która nie wymaga jawnego potoku kompilacji.

  • Zarządzanie konfiguracjami dla różnych etapów w różnych repozytoriach kontroli wersji i korzystanie z tych plików konfiguracji bezpośrednio w ramach potoku wdrażania.

  • Zarządzanie infrastrukturą i konfiguracją jako kodem w repozytorium kontroli wersji.

Za pomocą usługi Azure Pipelines można skonfigurować wiele źródeł artefaktów w jednym potoku wydania. Dzięki temu można połączyć potok kompilacji, który tworzy pliki binarne aplikacji i repozytorium kontroli wersji, w którym są przechowywane pliki konfiguracji, przy użyciu obu zestawów artefaktów razem podczas wdrażania.

Usługa Azure Pipelines obsługuje repozytoria Azure Repos, Kontrola wersji serwera Team Foundation (TFVC) i repozytoria GitHub. Potok wydania można połączyć z dowolnym repozytorium Git lub TFVC w kolekcji projektu, pod warunkiem, że masz dostęp do odczytu. Podczas wdrażania artefaktów kontroli wersji w tej samej kolekcji nie jest wymagana żadna dodatkowa konfiguracja.

Podczas łączenia repozytorium GitHub i wybierania gałęzi można edytować domyślne właściwości typów artefaktów po zapisaniu artefaktu. Jest to przydatne, jeśli stabilna gałąź wersji ulegnie zmianie, zapewniając, że wydania ciągłego dostarczania używają poprawnej gałęzi dla nowszych wersji artefaktów. Można również określić szczegóły wyewidencjonowania, takie jak moduły podrzędne, dołączanie śledzonych plików w usłudze Git-LFS i płytkie pobieranie głębokości.

Podczas łączenia gałęzi TFVC można określić zestaw zmian, który ma zostać wdrożony podczas tworzenia wersji.

Następujące funkcje są dostępne w przypadku korzystania z usług Azure Repos, Git i TFVC jako źródła artefaktów:

Funkcja opis
Wersje wyzwalacza automatycznego Nowe wydania można tworzyć automatycznie, gdy jest dostępny nowy artefakt (w tym kompilacje XAML). Aby uzyskać więcej informacji, zobacz Wyzwalacze wydania.
Zmienne artefaktu Wiele zmiennych artefaktów jest obsługiwanych w przypadku artefaktów, do których odwołuje się wersja klasyczna.
Elementy robocze i zatwierdzenia Połącz elementy robocze, aby wyświetlić je w szczegółach wydania. Zatwierdzenia będą wyświetlane podczas korzystania z usługi Git lub serwera TFVC.
Pobieranie artefaktu Domyślnie artefakty potoku są pobierane do agenta uruchamiającego potok. Możesz również skonfigurować krok na etapie, aby w razie potrzeby pominąć pobieranie artefaktu.

Uwaga

Domyślnie wersje są uruchamiane z zakresem autoryzacji zadań na poziomie organizacji, umożliwiając im dostęp do zasobów we wszystkich projektach w organizacji. Jest to przydatne podczas łączenia artefaktów potoku z innych projektów. Aby ograniczyć dostęp do artefaktów projektu, włącz opcję Ogranicz zakres autoryzacji zadań do bieżącego projektu dla potoków wydania w ustawieniach projektu.

Uwaga

Domyślnie wydania są uruchamiane z zakresem autoryzacji zadań na poziomie kolekcji, co umożliwia im dostęp do zasobów we wszystkich projektach w kolekcji. Jest to przydatne podczas łączenia artefaktów potoku z innych projektów. Aby ograniczyć dostęp do artefaktów projektu, włącz opcję Ogranicz zakres autoryzacji zadań do bieżącego projektu dla potoków wydania w ustawieniach projektu.

Azure Artifacts

Poniżej przedstawiono niektóre scenariusze, w których można użyć usługi Azure Artifacts jako źródła artefaktów:

  • Plik binarny aplikacji jest publikowany w usłudze Azure Artifacts i chcesz korzystać z pakietu w potoku wydania.

  • Potrzebujesz dodatkowych pakietów przechowywanych w usłudze Azure Artifacts w ramach przepływu pracy wdrażania.

W przypadku korzystania z usługi Azure Artifacts w potoku wydania należy wybrać źródło danych, pakiet i wersję domyślną pakietu. Możesz wybrać, aby pobrać najnowszą wersję pakietu, użyć określonej wersji lub określić w momencie tworzenia wydania. Podczas wdrażania pakiet jest pobierany do agenta uruchamiającego potok.

Podczas korzystania z usługi Azure Artifacts jako źródła artefaktów są dostępne następujące funkcje:

Funkcja opis
Wersje wyzwalacza automatycznego Nowe wydania można tworzyć automatycznie, gdy jest dostępny nowy artefakt (w tym kompilacje XAML). Aby uzyskać więcej informacji, zobacz Wyzwalacze wydania.
Zmienne artefaktu Wiele zmiennych artefaktów jest obsługiwanych w przypadku artefaktów, do których odwołuje się wersja klasyczna.
Elementy robocze i zatwierdzenia Połącz elementy robocze, aby wyświetlić je w szczegółach wydania. Zatwierdzenia będą wyświetlane podczas korzystania z usługi Git lub serwera TFVC.
Pobieranie artefaktu Domyślnie artefakty potoku są pobierane do agenta uruchamiającego potok. Możesz również skonfigurować krok na etapie, aby w razie potrzeby pominąć pobieranie artefaktu.

Obsługa migawek programu Maven

W przypadku korzystania z migawek narzędzia Maven można pobrać jednocześnie wiele wersji (na przykład myApplication-2.1.0.BUILD-20190920.220048-3.jar, myApplication-2.1.0.BUILD-20190820.221046-2.jar, myApplication-2.1.0.BUILD-20190820.220331-1.jar). Może być konieczne usunięcie starych wersji i zachowanie najnowszego artefaktu przed wdrożeniem.

Uruchom następujące polecenie w wierszu polecenia programu PowerShell, aby usunąć wszystkie kopie z wyjątkiem tej z najwyższą wartością leksykalną:

Get-Item "myApplication*.jar" | Sort-Object -Descending Name | Select-Object -SkipIndex 0 | Remove-Item

Uwaga

W kanale informacyjnym można przechowywać maksymalnie 30 migawek programu Maven. Po osiągnięciu tego limitu usługa Azure Artifacts automatycznie usunie starsze migawki, aby zachować tylko najnowsze 25.

Repozytorium kontenerów platformy Azure i usługa Docker Hub

W przypadku wdrażania konteneryzowanych aplikacji obraz kontenera jest najpierw wypychany do rejestru kontenerów. Następnie możesz wdrożyć obraz kontenera w usłudze Azure Web App for Containers lub klastrze Docker/Kubernetes. W tym celu należy najpierw utworzyć połączenie usługi w celu uwierzytelnienia za pomocą platformy Azure lub usługi Docker Hub. Aby uzyskać więcej informacji, zobacz Połączenie usługi Rejestru platformy Docker.

Następujące funkcje są dostępne w przypadku korzystania z usługi Azure Container Repository lub Docker Hub jako źródła artefaktów:

Funkcja opis
Wersje wyzwalacza automatycznego Nowe wydania można tworzyć automatycznie, gdy jest dostępny nowy artefakt (w tym kompilacje XAML). Aby uzyskać więcej informacji, zobacz Wyzwalacze wydania.
Zmienne artefaktu Wiele zmiennych artefaktów jest obsługiwanych w przypadku artefaktów, do których odwołuje się wersja klasyczna.
Elementy robocze i zatwierdzenia Połącz elementy robocze, aby wyświetlić je w szczegółach wydania. Zatwierdzenia będą wyświetlane podczas korzystania z usługi Git lub serwera TFVC.
Pobieranie artefaktu Domyślnie artefakty potoku są pobierane do agenta uruchamiającego potok. Możesz również skonfigurować krok na etapie, aby w razie potrzeby pominąć pobieranie artefaktu.

Jenkins

Aby korzystać z artefaktów serwera Jenkins, należy utworzyć połączenie usługi, aby uwierzytelnić się za pomocą serwera Jenkins. Aby uzyskać więcej informacji, zobacz Połączenie usługi Jenkins. Ponadto projekt narzędzia Jenkins musi być skonfigurowany przy użyciu akcji po kompilacji w celu opublikowania artefaktów.

Artefakty generowane przez kompilacje serwera Jenkins są zwykle propagowane do repozytoriów magazynu na potrzeby archiwizowania i udostępniania. Usługa Azure Blob Storage to jedno z takich repozytoriów, które umożliwia korzystanie z projektów serwera Jenkins, które publikują w usłudze Azure Storage jako źródła artefaktów w potoku wydania. Usługa Azure Pipelines automatycznie pobierze te artefakty z platformy Azure do agenta uruchamiającego potok. W tym scenariuszu łączność między agentem a serwerem Jenkins nie jest wymagana, a agenci hostowani przez firmę Microsoft mogą być używane bez uwidaczniania serwera Jenkins w Internecie.

W przypadku korzystania z narzędzia Jenkins jako źródła artefaktów dostępne są następujące funkcje:

Funkcja opis
Wersje wyzwalacza automatycznego Nowe wydania można tworzyć automatycznie, gdy jest dostępny nowy artefakt (w tym kompilacje XAML). Aby uzyskać więcej informacji, zobacz Wyzwalacze wydania.
Zmienne artefaktu Wiele zmiennych artefaktów jest obsługiwanych w przypadku artefaktów, do których odwołuje się wersja klasyczna.
Elementy robocze i zatwierdzenia Połącz elementy robocze, aby wyświetlić je w szczegółach wydania. Zatwierdzenia będą wyświetlane podczas korzystania z usługi Git lub serwera TFVC.
Pobieranie artefaktu Domyślnie artefakty potoku są pobierane do agenta uruchamiającego potok. Możesz również skonfigurować krok na etapie, aby w razie potrzeby pominąć pobieranie artefaktu.

Uwaga

Usługa Azure Pipelines może nie być w stanie wysłać polecenia ping do serwera Jenkins, jeśli znajduje się on w prywatnej sieci przedsiębiorstwa. W takich przypadkach można zintegrować usługę Azure Pipelines z usługą Jenkins, konfigurując agenta lokalnego, który ma dostęp do serwera Jenkins. Chociaż podczas łączenia z potokiem nazwy projektów serwera Jenkins mogą nie być widoczne, możesz ręcznie wprowadzić nazwę projektu w polu tekstowym adresu URL.

Alias źródła artefaktu

Aby zapewnić unikatowość każdego pobierania artefaktów, każde źródło artefaktu połączone z potokiem wydania jest automatycznie przypisywane do określonej lokalizacji pobierania znanej jako alias źródłowy. Dostęp do tej lokalizacji można uzyskać przy użyciu zmiennej : $(System.DefaultWorkingDirectory)\[source alias].

Użycie aliasów źródłowych gwarantuje, że zmiana nazwy połączonego źródła artefaktu nie wymaga edytowania właściwości zadania, ponieważ lokalizacja pobierania zdefiniowana w agencie pozostaje niezmieniona.

Domyślnie alias źródłowy to nazwa źródła artefaktu poprzedzona znakiem podkreślenia (np. _mslearn-tailspin-spacegame-web). Alias źródłowy może odpowiadać nazwie potoku kompilacji, nazwy zadania, nazwy projektu lub nazwy repozytorium, w zależności od typu źródła artefaktu. Alias źródłowy można edytować na karcie artefakty w potoku wydania. Na karcie artefakty potoku wydania.

Pobieranie artefaktu

Po zakończeniu wdrożenia na etapie do agenta potoku są pobierane artefakty z wersji z każdego źródła, aby zadania w ramach tego etapu mogły uzyskiwać do nich dostęp. Te pobrane artefakty nie są usuwane po zakończeniu wydania. Jednak po zainicjowaniu nowej wersji poprzednie artefakty zostaną usunięte i zastąpione nowymi.

Unikatowy folder jest tworzony na agencie dla każdego potoku wydania po zainicjowaniu wydania, a artefakty są pobierane do tego folderu:$(System.DefaultWorkingDirectory).

Usługa Azure Pipelines nie wykonuje żadnej optymalizacji, aby uniknąć ponownego pobierania niezmienionych artefaktów, jeśli ta sama wersja zostanie wdrożona ponownie. Ponadto, ponieważ wcześniej pobrana zawartość jest usuwana po uruchomieniu nowej wersji, usługa Azure Pipelines nie może wykonywać przyrostowych pobrań do agenta.

Aby pominąć automatyczne pobieranie artefaktów, przejdź do zadania>agenta potoku>>wydania pobieranie artefaktu i usuń zaznaczenie wszystkich artefaktów lub określ określone artefakty, które mają zostać pominięte.

Zrzut ekranu przedstawiający sposób pomijania automatycznego pobierania artefaktów w klasycznym potoku wydania w usłudze Azure DevOps Services.

Aby pominąć automatyczne pobieranie artefaktów, przejdź do zadania>agenta potoku>>wydania Dodatkowe opcje i zaznacz pole wyboru Pomiń pobieranie artefaktów.

Zrzut ekranu przedstawiający sposób pomijania automatycznego pobierania artefaktów w klasycznym potoku wydania na serwerze Azure DevOps Server.