Informacje o wersji usługi Azure DevOps Server 2022 Update 1
| Wymagania systemowe społeczności deweloperów i zgodność | postanowienia licencyjne DevOps | Blog | SHA-256 Skróty SHA-256 | |
Ten artykuł zawiera informacje dotyczące najnowszej wersji usługi Azure DevOps Server.
Aby dowiedzieć się więcej na temat instalowania lub uaktualniania wdrożenia usługi Azure DevOps Server, zobacz Wymagania dotyczące usługi Azure DevOps Server.
Aby pobrać produkty usługi Azure DevOps Server, odwiedź stronę pobierania usługi Azure DevOps Server.
Bezpośrednie uaktualnienie do usługi Azure DevOps Server 2022 Update 1 jest obsługiwane z poziomu programu Azure DevOps Server 2019 lub Team Foundation Server 2015 lub nowszego. Jeśli wdrożenie serwera TFS jest na serwerze TFS 2013 lub starszym, przed uaktualnieniem do usługi Azure DevOps Server 2022 należy wykonać pewne kroki tymczasowe. Aby uzyskać więcej informacji, zobacz stronę Instalowanie.
Azure DevOps Server 2022 Update 1 Patch 4 — data wydania: 11 czerwca 2024 r.
Plik | Skrót SHA-256 |
---|---|
devops2022.1patch4.exe | 29012B79569F042E2ED4518CE7216CA521F9435CCD80295B71F734AA60FCD03F |
Opublikowaliśmy poprawkę 4 dla usługi Azure DevOps Server 2022 Update 1, która zawiera poprawkę dla następujących elementów.
- Rozwiązano problem w witrynie typu wiki i elementach roboczych, w którym wyniki wyszukiwania nie były dostępne dla projektów z tureckimi ustawieniami regionalnymi "I".
Azure DevOps Server 2022 Update 1 Patch 3 — data wydania: 12 marca 2024 r.
Plik | Skrót SHA-256 |
---|---|
devops2022.1patch3.exe | E7DE45650D74A1B1C47F947CDEF4BF3307C4323D749408EE7F0524C2A04D2911 |
Opublikowaliśmy poprawkę 3 dla usługi Azure DevOps Server 2022 Update 1, która zawiera poprawki dla następujących elementów.
- Rozwiązano problem polegający na tym, że serwer proxy przestał działać po zainstalowaniu poprawki 2.
- Rozwiązano problem z renderowaniem na stronie szczegółów rozszerzenia wpływający na języki, które nie były angielskie.
Azure DevOps Server 2022 Update 1 Patch 2 — data wydania: 13 lutego 2024 r.
Plik | Skrót SHA-256 |
---|---|
devops2022.1patch2.exe | 59B3191E86DB787F91FDD1966554DE580CA97F06BA9CCB1D747D41A2317A5441 |
Opublikowaliśmy poprawkę 2 dla usługi Azure DevOps Server 2022 Update 1, która zawiera poprawki dla następujących elementów.
- Rozwiązywanie problemu z renderowaniem strony szczegółów w rozszerzeniu wyszukiwania.
- Usunięto usterkę polegającą na tym, że miejsce na dysku używane przez folder pamięci podręcznej serwera proxy było obliczane niepoprawnie i folder nie był prawidłowo czyszczony.
- CVE-2024-20667: Luka w zabezpieczeniach dotycząca zdalnego wykonywania kodu serwera Azure DevOps Server.
Azure DevOps Server 2022 Update 1 Patch 1 — data wydania: 12 grudnia 2023 r.
Plik | Skrót SHA-256 |
---|---|
devops2022.1patch1.exe | 9D0FDCCD1F20461E586689B756E600CC16424018A377042F7DC3A6EEF096FB6 |
Opublikowaliśmy poprawkę 1 dla usługi Azure DevOps Server 2022 Update 1, która zawiera poprawki dla następujących elementów.
- Zapobiegaj ustawieniu
requested for
podczas kolejkowania przebiegu potoku.
Azure DevOps Server 2022 Update 1 — data wydania: 28 listopada 2023 r.
Uwaga
Istnieją dwa znane problemy z tą wersją:
- Wersja agenta nie jest aktualizowana po uaktualnieniu do usługi Azure DevOps Server 2022.1 i przy użyciu agenta aktualizacji w konfiguracji puli agentów. Obecnie pracujemy nad poprawką w celu rozwiązania tego problemu i udostępnimy aktualizacje w społeczności deweloperów w miarę postępu. W międzyczasie możesz znaleźć obejście tego problemu w tym bilecie Społeczności deweloperów.
- Zgodność programu Maven 3.9.x. Program Maven 3.9.x wprowadził zmiany powodujące niezgodność w usłudze Azure Artifacts, aktualizując domyślny transport narzędzia Rozpoznawanie maven do natywnego protokołu HTTP z wagonu. Powoduje to problemy z uwierzytelnianiem 401 dla klientów korzystających z protokołu HTTP zamiast https. Więcej szczegółów na temat tego problemu można znaleźć tutaj. Aby obejść ten problem, możesz nadal używać programu Maven 3.9.x z właściwością
-Dmaven.resolver.transport=wagon
. Ta zmiana wymusza, aby narzędzie Maven korzystało z transportu rozwiązania Wagon Resolver. Zapoznaj się z dokumentacją tutaj , aby uzyskać więcej informacji.
Azure DevOps Server 2022.1 to zestawienie poprawek błędów. Obejmuje ona wszystkie funkcje w wcześniej wydanym programie Azure DevOps Server 2022.1 RC2.
Uwaga
Istnieje znany problem ze zgodnością programu Maven 3.9.x. Program Maven 3.9.x wprowadził zmiany powodujące niezgodność w usłudze Azure Artifacts, aktualizując domyślny transport narzędzia Rozpoznawanie maven do natywnego protokołu HTTP z wagonu. Powoduje to problemy z uwierzytelnianiem 401 dla klientów korzystających z protokołu HTTP zamiast https. Więcej szczegółów na temat tego problemu można znaleźć tutaj.
Aby obejść ten problem, możesz nadal używać programu Maven 3.9.x z właściwością -Dmaven.resolver.transport=wagon
. Ta zmiana wymusza, aby narzędzie Maven korzystało z transportu rozwiązania Wagon Resolver. Zapoznaj się z dokumentacją tutaj , aby uzyskać więcej informacji.
Azure DevOps Server 2022 Update 1 RC2 Data wydania: 31 października 2023 r.
Azure DevOps Server 2022.1 RC2 to zestawienie poprawek błędów. Obejmuje ona wszystkie funkcje w wcześniej wydanym programie Azure DevOps Server 2022.1 RC1.
Uwaga
Istnieje znany problem ze zgodnością programu Maven 3.9.x. Program Maven 3.9.x wprowadził zmiany powodujące niezgodność w usłudze Azure Artifacts, aktualizując domyślny transport narzędzia Rozpoznawanie maven do natywnego protokołu HTTP z wagonu. Powoduje to problemy z uwierzytelnianiem 401 dla klientów korzystających z protokołu HTTP zamiast https. Więcej szczegółów na temat tego problemu można znaleźć tutaj.
Aby obejść ten problem, możesz nadal używać programu Maven 3.9.x z właściwością -Dmaven.resolver.transport=wagon
. Ta zmiana wymusza, aby narzędzie Maven korzystało z transportu rozwiązania Wagon Resolver. Zapoznaj się z dokumentacją tutaj , aby uzyskać więcej informacji.
W tej wersji naprawiono następujące kwestie:
- Rozwiązano problem z lokalnymi kanałami informacyjnymi, który polegał na tym, że wpisy nadrzędne nie rozpoznawały zmian nazw wyświetlanych.
- Wystąpił nieoczekiwany błąd podczas przełączania kart z kodu na inną kartę na stronie Wyszukiwanie.
- Błąd podczas tworzenia nowego typu elementu roboczego z chińskimi, japońskimi i koreańskimi (CJK) Ujednoliconymi ideografami. Podczas zaewidencjonowania projektu zespołowego lub plików dołączonych do zestawu CJK w dzienniku RAW był wyświetlany znacznik zapytania.
- Rozwiązano problem podczas instalacji funkcji Wyszukiwania, który polegał na tym, że maszyna wirtualna Java (JVM) nie mogła przydzielić wystarczającej ilości pamięci do procesu elastic search. Widżet konfiguracji wyszukiwania będzie teraz używać zestawu Java Development Kit (JDK), który jest powiązany z usługą Elastic Search, a tym samym usuwa zależność od dowolnego środowiska Java Runtime Environment (JRE) wstępnie zainstalowanego na serwerze docelowym.
Azure DevOps Server 2022 Update 1 RC1 Data wydania: 19 września 2023 r.
Program Azure DevOps Server 2022.1 RC1 zawiera wiele nowych funkcji. Niektóre najważniejsze funkcje to:
- Wszystkie publiczne interfejsy API REST obsługują szczegółowe zakresy pat
- Kolumna Ostatni dostęp na stronie Plany dostarczania
- Wizualizowanie wszystkich zależności w planach dostarczania
- makro @CurrentIteration w planach dostarczania
- Bieżący projekt ustawiony jako domyślny zakres tokenu dostępu kompilacji w potokach klasycznych
- Pokaż element nadrzędny w widżecie wyników zapytania
- Kopiowanie pulpitu nawigacyjnego
- Obsługa dodatkowych typów diagramów na stronach typu wiki
- Połączenia usługi Container Registry mogą teraz używać tożsamości zarządzanych platformy Azure
Możesz również przejść do poszczególnych sekcji, aby wyświetlić wszystkie nowe funkcje dla każdej usługi:
Ogólne
Wszystkie publiczne interfejsy API REST obsługują szczegółowe zakresy pat
Wcześniej wiele publicznie udokumentowanych interfejsów API REST usługi Azure DevOps nie było skojarzonych z zakresami (np. odczytem elementów roboczych), które doprowadziły klientów do korzystania z pełnych zakresów w celu korzystania z tych interfejsów API za pośrednictwem nieinterakcyjnych mechanizmów uwierzytelniania, takich jak osobiste tokeny dostępu (PAT). Korzystanie z osobistego tokenu dostępu w pełnym zakresie zwiększa ryzyko, gdy może wylądować w rękach złośliwego użytkownika. Jest to jeden z głównych powodów, dla których wielu naszych klientów nie skorzystało w pełni z zasad płaszczyzny sterowania w celu ograniczenia użycia i zachowania pat.
Teraz wszystkie publiczne interfejsy API REST usługi Azure DevOps są teraz skojarzone i obsługują szczegółowy zakres pat. Jeśli obecnie używasz pełnego dostępu warunkowego do uwierzytelniania w jednym z publicznych interfejsów API REST usługi Azure DevOps, rozważ migrację do tokenu dostępu z określonym zakresem akceptowanym przez interfejs API, aby uniknąć niepotrzebnego dostępu. Obsługiwane szczegółowe zakresy pat dla danego interfejsu API REST można znaleźć w sekcji Zabezpieczenia stron dokumentacji. Ponadto w tym miejscu znajduje się tabela zakresów.
Rozszerzenia powinny wyświetlać zakresy
Podczas instalowania rozszerzeń w kolekcji usługi Azure DevOps możesz przejrzeć uprawnienia wymagane przez rozszerzenie w ramach instalacji. Jednak po zainstalowaniu uprawnienia rozszerzenia nie są widoczne w ustawieniach rozszerzenia. Stanowi to wyzwanie dla administratorów wymagających okresowego przeglądu zainstalowanych rozszerzeń. Teraz dodaliśmy uprawnienia rozszerzenia do ustawień rozszerzenia, aby ułatwić przeglądanie i podejmowanie świadomej decyzji o tym, czy je zachować, czy nie.
Boards
Kolumna Ostatni dostęp na stronie Plany dostarczania
Strona katalogu Plany dostarczania zawiera listę planów zdefiniowanych dla projektu. Możesz sortować według: Nazwa, Utworzona przez, Opis, Ostatnia konfiguracja lub Ulubione. Dzięki tej aktualizacji dodaliśmy kolumnę Ostatni dostęp do strony katalogu. Zapewnia to wgląd w czas ostatniego otwarcia planu dostarczania i przyjrzenia się temu. W związku z tym łatwo jest zidentyfikować plany, które nie są już używane i można je usunąć.
Wizualizowanie wszystkich zależności w planach dostarczania
Plany dostarczania zawsze zapewniały możliwość wyświetlania zależności między elementami roboczymi. Możesz zwizualizować linie zależności — jeden po drugim. W tej wersji ulepszyliśmy środowisko, umożliwiając wyświetlanie wszystkich wierszy zależności we wszystkich elementach roboczych na ekranie. Wystarczy kliknąć przycisk przełącznika zależności w prawym górnym rogu planu dostawy. Kliknij go ponownie, aby wyłączyć wiersze.
Limity poprawek nowego elementu roboczego
W ciągu ostatnich kilku lat widzieliśmy kolekcje projektów z zautomatyzowanymi narzędziami generują dziesiątki tysięcy poprawek elementów roboczych. Powoduje to problemy z wydajnością i użytecznością formularza elementu roboczego oraz interfejsami API REST raportowania. Aby rozwiązać ten problem, zaimplementowaliśmy limit poprawki elementu roboczego o wartości 10 000 do usługi Azure DevOps Service. Limit dotyczy tylko aktualizacji przy użyciu interfejsu API REST, a nie formularza elementu roboczego.
Kliknij tutaj , aby dowiedzieć się więcej na temat limitu poprawek i sposobu obsługi go w zautomatyzowanym narzędziu.
Zwiększanie limitu zespołu planów dostarczania z zakresu od 15 do 20
Plany dostarczania umożliwiają wyświetlanie wielu list prac i wielu zespołów w kolekcji projektów. Wcześniej można było wyświetlić 15 list prac zespołu, w tym mieszankę list prac i zespołów z różnych projektów. W tej wersji zwiększyliśmy maksymalny limit z 15 do 20.
Usunięto usterkę w linkach elementów roboczych raportowania — pobieranie interfejsu API
Usunęliśmy usterkę w interfejsie API pobierania linków elementów roboczych raportowania, aby zwrócić poprawną wartość remoteUrl dla System.LinkTypes.Remote.Related
typów linków. Przed tą poprawką zwracaliśmy nieprawidłową nazwę kolekcji projektów i brakujący identyfikator projektu.
Tworzenie tymczasowego punktu końcowego REST zapytania
Widzieliśmy kilka wystąpień autorów rozszerzeń próbujących uruchamiać niezapisane zapytania, przekazując instrukcję WIQL (Work Item Query Language) za pośrednictwem ciągu zapytania. Działa to dobrze, chyba że masz dużą instrukcję WIQL, która osiąga limity przeglądarki na długości ciągu zapytania. Aby rozwiązać ten problem, utworzyliśmy nowy punkt końcowy REST, aby umożliwić autorom narzędzi generowanie zapytania tymczasowego. Użycie identyfikatora z odpowiedzi w celu przekazania przez element querystring eliminuje ten problem.
Dowiedz się więcej na stronie dokumentacji interfejsu API REST zapytań tymczasowych.
Interfejs API usuwania usługi Batch
Obecnie jedynym sposobem usunięcia elementów roboczych z kosza jest użycie tego interfejsu API REST do jednorazowego usunięcia. Może to być powolny proces i podlega ograniczeniu szybkości podczas próby przeprowadzenia dowolnego rodzaju masowego czyszczenia. W odpowiedzi dodaliśmy nowy punkt końcowy interfejsu API REST do usuwania i/lub niszczenia elementów roboczych w partii.
@CurrentIteration makro w planach dostarczania
Dzięki tej aktualizacji dodaliśmy obsługę makr dla @CurrentIteration stylów w planach dostarczania. To makro umożliwi uzyskanie bieżącej iteracji z kontekstu zespołu każdego wiersza w planie.
Logika zmiany rozmiaru karty w planach dostarczania
Nie wszyscy używają daty docelowej i/lub daty rozpoczęcia podczas śledzenia funkcji i epików. Niektórzy decydują się na użycie kombinacji dat i ścieżki iteracji. W tej wersji ulepszyliśmy logikę, aby odpowiednio ustawić kombinacje pól i ścieżki iteracji w zależności od sposobu ich użycia.
Jeśli na przykład data docelowa nie jest używana i zmieniasz rozmiar karty, nowa ścieżka iteracji jest ustawiona zamiast aktualizować datę docelową.
Ulepszenia aktualizacji usługi Batch
Wprowadziliśmy kilka zmian w wersji 7.1 interfejsu API aktualizacji wsadowej elementu roboczego. Obejmują one niewielkie ulepszenia wydajności i obsługę częściowych awarii. Oznacza to, że jeśli jedna poprawka nie powiedzie się, ale inne nie, pozostałe zostaną pomyślnie ukończone.
Kliknij tutaj , aby dowiedzieć się więcej na temat interfejsu API REST aktualizacji wsadowej.
Interfejs API usuwania usługi Batch
Ten nowy punkt końcowy interfejsu API REST do usunięcia i/lub zniszczenia elementów roboczych w partii jest teraz publicznie dostępny. Kliknij tutaj, aby dowiedzieć się więcej.
Zapobieganie edytowaniu pól listy wyboru z możliwością udostępniania
Pola niestandardowe są współużytkowane przez procesy. Może to spowodować problem z polami listy wyboru, ponieważ zezwalamy administratorom procesów na dodawanie lub usuwanie wartości z pola. W takim przypadku zmiany wpływają na to pole w każdym procesie, przy użyciu którego jest on używany.
Aby rozwiązać ten problem, dodaliśmy możliwość edytowania pola przez administratora kolekcji. Gdy pole listy wyboru jest zablokowane, administrator lokalnego procesu nie może zmienić wartości tej listy wyboru. Mogą tylko dodawać lub usuwać pole z procesu.
Nowe uprawnienie do zapisywania komentarzy
Możliwość zapisywania tylko komentarzy elementów roboczych była głównym żądaniem w społeczności deweloperów. Z przyjemnością poinformujemy Cię, że zaimplementowaliśmy tę funkcję. Aby rozpocząć, przejrzyjmy najbardziej typowy scenariusz:
"Chcę uniemożliwić niektórym użytkownikom edytowanie pól elementów roboczych, ale umożliwić im współtworzenie dyskusji".
W tym celu należy przejść do ścieżki obszaru konfiguracji > projektu Ustawienia > projektu. Następnie wybierz wybraną ścieżkę obszaru i kliknij pozycję Zabezpieczenia.
Zwróć uwagę na nowe uprawnienie "Edytuj komentarze elementów roboczych w tym węźle". Domyślnie uprawnienie jest ustawione na Wartość Nie ustawiono. Oznacza to, że element roboczy będzie zachowywał się dokładnie tak, jak wcześniej. Aby zezwolić grupie lub użytkownikom na zapisywanie komentarzy, wybierz tę grupę/użytkowników i zmień uprawnienie na Zezwalaj.
Gdy użytkownik otworzy formularz elementu roboczego w tej ścieżce obszaru, będzie mógł dodawać komentarze, ale nie może zaktualizować żadnego z pozostałych pól.
Mamy nadzieję, że pokochasz tę funkcję tak samo, jak my. Jak zawsze, jeśli masz jakiekolwiek opinie lub sugestie, daj nam znać.
Raporty tablic interakcyjnych
Interaktywne raporty znajdujące się w centrum Boards są dostępne od kilku lat w naszej hostowanej wersji produktu. Zastępują one starsze wykresy skumulowanego przepływu, prędkości i przebiegu. W tej wersji udostępniamy je.
Aby wyświetlić te wykresy, kliknij lokalizację karty Analiza na stronach Tablica Kanban, Lista prac i Przebiegi.
Repos
Usuwanie uprawnień "Edytuj zasady" do twórcy gałęzi
Wcześniej po utworzeniu nowej gałęzi udzielono Ci uprawnień do edytowania zasad w tej gałęzi. W przypadku tej aktualizacji zmieniamy domyślne zachowanie, aby nie udzielać tego uprawnienia, nawet jeśli ustawienie „Zarządzanie uprawnieniami” jest włączone dla repozytorium.
Będziesz także potrzebować uprawnienia „Edytuj zasady” przyznanego jawnie (ręcznie lub za pośrednictwem interfejsu API REST) poprzez dziedziczenie uprawnień zabezpieczeń lub poprzez członkostwo w grupie.
Pipelines
Bieżący projekt ustawiony jako domyślny zakres tokenu dostępu kompilacji w potokach klasycznych
Usługa Azure Pipelines używa tokenów dostępu do zadań w celu uzyskania dostępu do innych zasobów w usłudze Azure DevOps w czasie wykonywania. Token dostępu do zadania to token zabezpieczający, który jest dynamicznie generowany przez usługę Azure Pipelines dla każdego zadania w czasie wykonywania. Wcześniej podczas tworzenia nowych klasycznych potoków wartość domyślna tokenu dostępu została ustawiona na Project Collection. Dzięki tej aktualizacji ustawiamy zakres autoryzacji zadania na bieżący projekt jako domyślny podczas tworzenia nowego potoku klasycznego.
Więcej szczegółowych informacji na temat tokenów dostępu do zadań można znaleźć w dokumentacji repozytoriów programu Access, artefaktów i innych zasobów.
Zmiana domyślnego zakresu tokenów dostępu w klasycznych potokach kompilacji
Aby zwiększyć bezpieczeństwo klasycznych potoków kompilacji, podczas tworzenia nowego zakresu autoryzacji zadania kompilacji będzie domyślnie projekt. Do tej pory była to kolekcja projektów. Przeczytaj więcej na temat tokenów dostępu do zadań. Ta zmiana nie ma wpływu na żadne z istniejących potoków. Ma to wpływ tylko na nowe klasyczne potoki kompilacji tworzone od tego momentu.
Obsługa usługi Azure Pipelines dla wersji San Diego, Tokio i Utah usługi ServiceNow
Usługa Azure Pipelines ma istniejącą integrację z usługą ServiceNow. Integracja opiera się na aplikacji w usłudze ServiceNow i rozszerzeniu w usłudze Azure DevOps. Teraz zaktualizowaliśmy aplikację do pracy z wersjami Usługi ServiceNow w San Diego, Tokio i Utah. Aby upewnić się, że ta integracja działa, przeprowadź uaktualnienie do nowej wersji aplikacji (4.215.2) ze sklepu ServiceNow.
Aby uzyskać więcej informacji, zobacz dokumentację Integrowanie z usługą ServiceNow Change Management.
Korzystanie z adresów URL serwera proxy na potrzeby integracji z usługą GitHub Enterprise
Usługa Azure Pipelines integruje się z lokalnymi serwerami GitHub Enterprise Server w celu uruchamiania kompilacji ciągłej integracji i żądań ściągnięcia. W niektórych przypadkach serwer GitHub Enterprise Server znajduje się za zaporą i wymaga, aby ruch był kierowany przez serwer proxy. Aby obsłużyć ten scenariusz, połączenia usługi GitHub Enterprise Server w usłudze Azure DevOps umożliwiają skonfigurowanie adresu URL serwera proxy. Wcześniej nie cały ruch z usługi Azure DevOps był kierowany przez ten adres URL serwera proxy. Dzięki tej aktualizacji upewniamy się, że kierujemy następujący ruch z usługi Azure Pipelines, aby przejść przez adres URL serwera proxy:
- Pobieranie gałęzi
- Pobieranie informacji o żądaniu ściągnięcia
- Stan kompilacji raportu
Połączenia usługi Container Registry mogą teraz używać tożsamości zarządzanych platformy Azure
Tożsamość zarządzana przypisana przez system można użyć podczas tworzenia połączeń usługi Docker Registry dla usługi Azure Container Registry. Dzięki temu można uzyskać dostęp do usługi Azure Container Registry przy użyciu tożsamości zarządzanej skojarzonej z własnym agentem usługi Azure Pipelines, eliminując konieczność zarządzania poświadczeniami.
Uwaga
Tożsamość zarządzana używana do uzyskiwania dostępu do usługi Azure Container Registry będzie potrzebować odpowiedniego przypisania kontroli dostępu na podstawie ról (RBAC), np. roli AcrPull lub AcrPush.
Automatyczne tokeny utworzone dla połączenia usługi Kubernetes Service
Ponieważ platforma Kubernetes 1.24, tokeny nie były już tworzone automatycznie podczas tworzenia nowego połączenia usługi Kubernetes. Dodaliśmy tę funkcję z powrotem. Zaleca się jednak użycie połączenia z usługą Azure podczas uzyskiwania dostępu do usługi AKS, aby dowiedzieć się więcej na temat wskazówek dotyczących połączenia z usługą dla klientów usługi AKS korzystających z zadań platformy Kubernetes w blogu.
Zadania kubernetes obsługują teraz rozwiązanie kubelogin
Zaktualizowaliśmy zadania KuberentesManifest@1, HelmDeploy@0, Kubernetes@1 i AzureFunctionOnKubernetes@1 w celu obsługi narzędzia kubelogin. Dzięki temu można kierować usługę Azure Kubernetes Service (AKS) skonfigurowaną z integracją usługi Azure Active Directory.
Platforma Kubelogin nie jest wstępnie zainstalowana na hostowanych obrazach. Aby upewnić się, że wymienione powyżej zadania używają narzędzia kubelogin, zainstaluj je, wstawiając zadanie KubeloginInstaller@0 przed zadaniem, które jest od niego zależne:
- task: KubeloginInstaller@0
- task: HelmDeploy@0
# arguments do not need to be modified to use kubelogin
Ulepszenia środowiska dotyczące uprawnień potoku
Ulepszyliśmy środowisko zarządzania uprawnieniami potoku, aby system uprawnień zapamiętał, czy potok wcześniej używał chronionego zasobu, takiego jak połączenie z usługą.
W przeszłości, jeśli podczas tworzenia chronionego zasobu została zaznaczona opcja "Udziel uprawnień dostępu do wszystkich potoków", ale następnie ograniczono dostęp do zasobu, potok potrzebował nowej autoryzacji do korzystania z zasobu. To zachowanie było niespójne z kolejnym otwarciem i zamknięciem dostępu do zasobu, w którym nie była wymagana nowa autoryzacja. Jest to teraz naprawione.
Nowy zakres pat do zarządzania autoryzacją potoku i zatwierdzeniami i sprawdzaniem
Aby ograniczyć szkody spowodowane wyciekiem tokenu PAT, dodaliśmy nowy zakres pat o nazwie Pipeline Resources
. Ten zakres pat można użyć podczas zarządzania autoryzacją potoku przy użyciu chronionego zasobu, takiego jak połączenie z usługą, lub do zarządzania zatwierdzeniami i sprawdzania tego zasobu.
Następujące wywołania interfejsu API REST obsługują nowy zakres pat w następujący sposób:
- Aktualizowanie zatwierdzenia obsługuje zakres
Pipeline Resources Use
- Zarządzanie sprawdzaniem obsługuje zakres
Pipeline Resources Use and Manage
- Uprawnienia potoku aktualizacji dla zasobów obsługują zakres
Pipeline Resources Use and Manage
- Autoryzowanie zasobów definicji obsługuje zakres
Pipeline Resources Use and Manage
- Autoryzowanie zasobów projektu obsługuje zakres
Pipeline Resources Use and Manage
Ograniczanie otwierania chronionych zasobów do administratorów zasobów
Aby zwiększyć bezpieczeństwo zasobów, które mają kluczowe znaczenie dla możliwości bezpiecznego kompilowania i wdrażania aplikacji, usługa Azure Pipelines wymaga teraz roli administratora typu zasobu podczas otwierania dostępu do zasobu do wszystkich potoków.
Na przykład do zezwalania na używanie połączenia z usługą jest wymagana ogólna rola administratora połączeń usług. To ograniczenie dotyczy tworzenia chronionego zasobu lub edytowania konfiguracji zabezpieczeń.
Ponadto podczas tworzenia połączenia z usługą i nie masz wystarczających praw, opcja Udziel dostępu do wszystkich potoków jest wyłączona.
Ponadto podczas próby otwarcia dostępu do istniejącego zasobu i nie masz wystarczających praw, otrzymasz komunikat Nie masz uprawnień do otwierania dostępu do tego zasobu .
Ulepszenia zabezpieczeń interfejsu API REST potoków
Większość interfejsów API REST w usłudze Azure DevOps używa tokenów pat o określonym zakresie. Jednak niektóre z nich wymagają w pełni zakres tokenów PAT. Innymi słowy, należy utworzyć token pat, wybierając pozycję "Pełny dostęp", aby użyć niektórych z tych interfejsów API. Takie tokeny stanowią zagrożenie bezpieczeństwa, ponieważ mogą być używane do wywoływania dowolnego interfejsu API REST. Wprowadziliśmy ulepszenia w usłudze Azure DevOps, aby usunąć potrzebę w pełni określonych tokenów, włączając każdy interfejs API REST do określonego zakresu. W ramach tego nakładu pracy interfejs API REST do aktualizowania uprawnień potoku dla zasobu wymaga teraz określonego zakresu. Zakres zależy od typu zasobu autoryzowanego do użycia:
Code (read, write, and manage)
dla zasobów typurepository
Agent Pools (read, manage)
lubEnvironment (read, manage)
dla zasobów typuqueue
iagentpool
Secure Files (read, create, and manage)
dla zasobów typusecurefile
Variable Groups (read, create and manage)
dla zasobów typuvariablegroup
Service Endpoints (read, query and manage)
dla zasobów typuendpoint
Environment (read, manage)
dla zasobów typuenvironment
Aby zbiorczo edytować uprawnienia potoków, nadal będziesz potrzebować w pełni ograniczonego tokenu pat. Aby dowiedzieć się więcej na temat aktualizowania uprawnień potoku dla zasobów, zobacz dokumentację Uprawnienia potoku — aktualizowanie uprawnień potoku dla zasobów .
Szczegółowe zarządzanie dostępem dla pul agentów
Pule agentów umożliwiają określanie maszyn, na których działają potoki i zarządzanie nimi.
Wcześniej, jeśli użyto niestandardowej puli agentów, zarządzanie potokami, do których potoków może uzyskiwać dostęp, było gruboziarniste. Możesz zezwolić na korzystanie ze wszystkich potoków lub wymagać, aby każdy potok poprosił o uprawnienie. Niestety po udzieleniu uprawnień dostępu do potoku do puli agentów nie można go odwołać przy użyciu interfejsu użytkownika potoków.
Usługa Azure Pipelines zapewnia teraz szczegółowe zarządzanie dostępem dla pul agentów. Środowisko jest podobne do tego, które służy do zarządzania uprawnieniami potoku dla połączeń usług.
Zapobieganie udzielaniu dostępu do wszystkich potoków chronionym zasobom
Podczas tworzenia chronionego zasobu, takiego jak połączenie z usługą lub środowisko, możesz zaznaczyć pole wyboru Udziel uprawnień dostępu do wszystkich potoków . Do tej pory ta opcja została domyślnie zaznaczona.
Chociaż ułatwia to potokom korzystanie z nowych chronionych zasobów, odwrotnie jest to, że faworyzuje przypadkowe przyznanie zbyt wielu potoków prawa dostępu do zasobu.
Aby podwyższyć poziom bezpieczeństwa domyślnie, usługa Azure DevOps pozostawia pole wyboru niezakluczone.
Możliwość wyłączenia maskowania krótkich wpisów tajnych
Usługa Azure Pipelines maskuje wpisy tajne w dziennikach. Wpisy tajne mogą być zmiennymi oznaczonymi jako wpis tajny, zmiennymi z grup zmiennych połączonych z usługą Azure Key Vault lub elementami połączenia usługi oznaczonymi jako wpis tajny przez dostawcę połączenia z usługą.
Wszystkie wystąpienia wartości wpisu tajnego są maskowane. Maskowanie krótkich wpisów tajnych, np. "1
", "2
Dev
", ułatwia odgadnięcie ich wartości, np. w dacie: "Jan 3, 202***
"
Teraz jest jasne, "3
" jest tajemnicą. W takich przypadkach możesz całkowicie nie maskować wpisu tajnego. Jeśli nie można oznaczyć wartości jako wpisu tajnego (np. wartość jest pobierana z usługi Key Vault), możesz ustawić AZP_IGNORE_SECRETS_SHORTER_THAN
pokrętło na wartość maksymalnie 4.
Zadanie pobierania modułu uruchamiającego węzły
W przypadku wdrażania wydań agenta, które wykluczają moduł uruchamiający zadania node 6, może być okazjonalnie konieczne uruchamianie zadań, które nie zostały zaktualizowane w celu korzystania z nowszego modułu uruchamiającego węzeł. W tym scenariuszu udostępniamy metodę, aby nadal używać zadań zależnych od modułów uruchamiaczy end-of-life węzłów, zobacz wpis w blogu dotyczący wskazówek dotyczących modułu uruchamiającego węzły.
Poniższe zadanie to metoda instalowania modułu uruchamiającego oprogramowanie Node 6 just-in-time, więc stare zadanie może nadal być wykonywane:
steps:
- task: NodeTaskRunnerInstaller@0
inputs:
runnerVersion: 6
Zaktualizowano walidację modułu uruchamiającego węzły TFX
Autorzy zadań używają narzędzia do tworzenia pakietów rozszerzeń (TFX) do publikowania rozszerzeń. Funkcja TFX została zaktualizowana w celu przeprowadzenia walidacji w wersjach modułu uruchamiającego węzeł. Zobacz wpis w blogu wskazówki dotyczące modułu uruchamiającego węzły.
Rozszerzenia zawierające zadania korzystające z modułu uruchamiającego węzeł 6 będą widzieć następujące ostrzeżenie:
Task <TaskName> is dependent on a task runner that is end-of-life and will be removed in the future. Authors should review Node upgrade guidance: https://aka.ms/node-runner-guidance.
Instrukcje dotyczące ręcznej wstępnej instalacji węzła 6 na agentach potoku
Jeśli używasz kanału informacyjnego pipeline-
agenta, nie masz węzła 6 dołączonego do agenta. W niektórych przypadkach, gdy zadanie platformy Marketplace jest nadal zależne od węzła Node 6, a agent nie jest w stanie użyć zadania NodeTaskRunnerInstaller (np. z powodu ograniczeń łączności), konieczne będzie wstępne zainstalowanie węzła Node 6 niezależnie. Aby to zrobić, zapoznaj się z instrukcjami dotyczącymi ręcznego instalowania modułu uruchamiającego węzeł Node 6.
Dziennik zmian zadań potoku
Teraz publikujemy zmiany w zadaniach potoku w tym dzienniku zmian. Zawiera pełną listę zmian wprowadzonych we wbudowanych zadaniach potoku. Opublikowaliśmy wcześniejsze zmiany z mocą wsteczną, więc dziennik zmian zawiera historyczny rekord aktualizacji zadań.
Zadania wydania korzystają z interfejsu API programu Microsoft Graph
Zaktualizowaliśmy nasze zadania wydania w celu korzystania z interfejsu API programu Microsoft Graph. Spowoduje to usunięcie użycia interfejsu API programu Graph usługi AAD z naszych zadań.
Poprawa wydajności zadań programu Windows PowerShell
Zadania można używać do definiowania automatyzacji w potoku. Jednym z tych zadań jest PowerShell@2
zadanie narzędzia, które umożliwia wykonywanie skryptów programu PowerShell w potoku. Aby użyć skryptu programu PowerShell do kierowania środowiska platformy Azure, możesz użyć AzurePowerShell@5
zadania . Niektóre polecenia programu PowerShell, które mogą drukować aktualizacje postępu, na przykład Invoke-WebRequest
, są teraz wykonywane szybciej. Poprawa jest bardziej znacząca, jeśli masz wiele z tych poleceń w skrypsie lub gdy są długotrwałe. Dzięki tej aktualizacji progressPreference
właściwość PowerShell@2
zadań i AzurePowerShell@5
jest teraz domyślnie ustawiona na SilentlyContinue
wartość .
Agent potoków w wersji 3 na platformie .NET 6
Agent potoku został uaktualniony do używania platformy .NET 3.1 Core do platformy .NET 6 jako środowiska uruchomieniowego. Wprowadza to natywną obsługę systemu Apple Silicon, a także Windows Arm64.
Korzystanie z platformy .NET 6 ma wpływ na wymagania systemowe agenta. W szczególności spadek obsługi następujących systemów operacyjnych: CentOS 6, Fedora 29-33, Linux Mint 17-18, Red Hat Enterprise Linux 6. Zobacz dokumentację oprogramowania agenta w wersji 3.
Ten skrypt może służyć do identyfikowania potoków korzystających z agentów z nieobsługiwanymi systemami operacyjnymi.
Ważne
Należy pamiętać, że agenci działający w dowolnym z powyższych systemów operacyjnych nie będą już aktualizować ani nie działać po wdrożeniu agenta opartego na platformie .NET 6.
Określanie wersji agenta w rozszerzeniu maszyny wirtualnej agenta
Maszyny wirtualne platformy Azure można uwzględnić w grupach wdrożeń przy użyciu rozszerzenia maszyny wirtualnej. Rozszerzenie maszyny wirtualnej zostało zaktualizowane w celu opcjonalnego określenia żądanej wersji agenta do zainstalowania:
"properties": {
...
"settings": {
...
"AgentMajorVersion": "auto|2|3",
...
},
...
}
Nowe przełączanie w celu kontrolowania tworzenia klasycznych potoków
Usługa Azure DevOps umożliwia teraz zapewnienie, że kolekcja projektów używa tylko potoków YAML, wyłączając tworzenie klasycznych potoków kompilacji, klasycznych potoków wydania, grup zadań i grup wdrożeń. Istniejące potoki klasyczne będą nadal działać i będzie można je edytować, ale nie będzie można tworzyć nowych.
Usługa Azure DevOps umożliwia teraz zapewnienie, że organizacja korzysta tylko z potoków YAML, wyłączając tworzenie klasycznych potoków kompilacji, klasycznych potoków wydania, grup zadań i grup wdrożeń. Istniejące potoki klasyczne będą nadal działać i będzie można je edytować, ale nie będzie można tworzyć nowych.
Możesz wyłączyć tworzenie klasycznych potoków na poziomie kolekcji projektów lub na poziomie projektu, włączając odpowiednie przełączanie. Przełączanie można znaleźć w obszarze Project/Project Settings — Pipelines - Settings (Ustawienia projektu/ projektu —> potoki —> ustawienia). Istnieją dwa przełączniki: jeden dla klasycznych potoków kompilacji i jeden dla klasycznych potoków wydania, grup wdrożeń i grup zadań.
Stan przełączania jest domyślnie wyłączony i musisz mieć uprawnienia administratora, aby zmienić stan. Jeśli przełącznik jest włączony na poziomie organizacji, wyłączenie jest wymuszane dla wszystkich projektów. W przeciwnym razie każdy projekt jest bezpłatny, aby wybrać, czy wymuszać, czy nie wyłączyć.
Wyłączenie tworzenia klasycznych potoków jest wymuszane, interfejsy API REST związane z tworzeniem klasycznych potoków, grup zadań i grup wdrożeń zakończy się niepowodzeniem. Interfejsy API REST, które tworzą potoki YAML, będą działać.
Aktualizacje zdarzenia "Zmiana stanu etapu uruchamiania" elementu service hook
Punkty zaczepienia usługi umożliwiają uruchamianie zadań w innych usługach, gdy zdarzenia występują w projekcie w usłudze Azure DevOps. Stan etapu uruchamiania zmienia się w jednym z tych zdarzeń. Zdarzenie Zmiany stanu etapu uruchamiania musi zawierać informacje o przebiegu, w tym nazwę potoku. Wcześniej zawierał tylko informacje o identyfikatorze i nazwie przebiegu. Dzięki tej aktualizacji wprowadziliśmy zmiany w zdarzeniu, aby uwzględnić brakujące informacje.
Wyłącz wyświetlanie ostatniego komunikatu zatwierdzenia dla uruchomienia potoku
Wcześniej interfejs użytkownika potoków używany do wyświetlania ostatniego komunikatu zatwierdzenia podczas wyświetlania uruchomienia potoku.
Ten komunikat może być mylący, na przykład wtedy, gdy kod potoku YAML znajduje się w repozytorium innym niż ten, który przechowuje kod, który jest kompilujący. Wysłuchaliśmy opinii społeczności deweloperów z prośbą o włączenie/wyłączenie dołączania najnowszego komunikatu zatwierdzenia do tytułu każdego uruchomienia potoku.
Dzięki tej aktualizacji dodaliśmy nową właściwość YAML o nazwie appendCommitMessageToRunName
, która umożliwia wykonanie dokładnie tej czynności. Domyślnie właściwość jest ustawiona na true
wartość . Po ustawieniu go na false
wartość , uruchomienie potoku BuildNumber
będzie wyświetlać tylko element .
Zwiększono limity usługi Azure Pipeline w celu dostosowania do maksymalnego rozmiaru szablonu usługi Azure Resource Manager (ARM) 4 MB.
Aby utworzyć infrastrukturę platformy Azure, możesz użyć zadania wdrażania szablonu usługi Azure Resource Manager. W odpowiedzi na Twoją opinię zwiększyliśmy limit integracji usługi Azure Pipelines wynoszący od 2 MB do 4 MB. Będzie to zgodne z szablonami usługi ARM o maksymalnym rozmiarze 4 MB rozpoznawania ograniczeń rozmiaru podczas integracji dużych szablonów.
Ikona przeglądu stanu uruchomienia potoku
W tej wersji ułatwiamy poznanie ogólnego stanu uruchomienia potoku.
W przypadku potoków YAML, które mają wiele etapów, trudno było poznać stan uruchomienia potoku, czyli jest to, że jest on nadal uruchomiony lub został ukończony. A jeśli to się skończy, jaki jest ogólny stan: powodzenie, niepowodzenie lub anulowanie. Rozwiązaliśmy ten problem, dodając ikonę przeglądu stanu przebiegu.
Panel boczny etapów potoku
Potoki YAML mogą mieć dziesiątki etapów, a nie wszystkie z nich będą pasować na ekranie. Chociaż ikona przeglądu przebiegu potoku informuje o ogólnym stanie przebiegu, nadal trudno jest wiedzieć, który etap zakończył się niepowodzeniem lub który etap jest nadal uruchomiony, na przykład.
W tej wersji dodaliśmy panel boczny etapów potoku, który pozwala szybko zobaczyć stan wszystkich etapów. Następnie możesz kliknąć etap i przejść bezpośrednio do jego dzienników.
Wyszukiwanie etapów w panelu bocznym
Ułatwiliśmy znajdowanie etapów, których szukasz w panelu bocznym etapów. Teraz możesz szybko filtrować etapy na podstawie ich stanu, na przykład etapów uruchamiania lub tych, które wymagają interwencji ręcznej. Możesz również wyszukać etapy według ich nazwy.
Szybkie akcje etapu
Ekran Uruchomienia potoku zapewnia szybki dostęp do wszystkich etapów uruchamiania. W tej wersji dodaliśmy panel etapów, z którego można wykonywać akcje dla każdego etapu. Można na przykład łatwo ponownie uruchomić zadania, które zakończyły się niepowodzeniem, lub ponownie uruchomić cały etap. Panel jest dostępny, gdy nie wszystkie etapy mieszczą się w interfejsie użytkownika, jak widać na poniższym zrzucie ekranu.
Po kliknięciu znaku "+" w kolumnie etapy zostanie wyświetlony panel etapów, a następnie można wykonać akcje etapu.
Sprawdzanie ulepszeń środowiska użytkownika
Ułatwiamy odczytywanie dzienników sprawdzania. Sprawdzanie dzienników zapewnia informacje krytyczne dla powodzenia wdrożenia. Mogą powiedzieć, czy nie pamiętasz o zamknięciu biletu elementu roboczego lub że musisz zaktualizować bilet w usłudze ServiceNow. Wcześniej, wiedząc, że sprawdzenie pod warunkiem, że takie krytyczne informacje były trudne.
Teraz na stronie szczegółów przebiegu potoku jest wyświetlany najnowszy dziennik sprawdzania. Dotyczy to tylko kontroli, które są zgodne z naszym zalecanym użyciem.
Aby zapobiec błędnemu zatwierdzeniu zatwierdzeń, usługa Azure DevOps wyświetla instrukcje zatwierdzania w panelu bocznym Zatwierdzenia i sprawdzania na stronie szczegółów przebiegu potoku.
Wyłączanie sprawdzania
Wprowadziliśmy testy debugowania mniej żmudne. Czasami sprawdzanie wywołania funkcji platformy Azure lub wywołania interfejsu API REST nie działa poprawnie i należy go naprawić. Wcześniej trzeba było usunąć takie kontrole, aby uniemożliwić im błędne blokowanie wdrożenia. Po naprawieniu sprawdzania trzeba było go ponownie dodać i skonfigurować poprawnie, upewniając się, że wszystkie wymagane nagłówki są ustawione lub parametry zapytania są poprawne. To jest żmudne.
Teraz możesz po prostu wyłączyć sprawdzanie. Wyłączone sprawdzanie nie zostanie uruchomione w kolejnych ocenach pakietu sprawdzania.
Po naprawieniu błędnego sprawdzania można go tylko włączyć.
Zużyte zasoby i parametry szablonu w interfejsie API REST przebiegów potoków
Rozszerzony interfejs API REST przebiegów potoków zwraca teraz więcej typów artefaktów używanych przez uruchomienie potoku i parametry używane do wyzwalania tego uruchomienia. Ulepszyliśmy interfejs API w celu zwrócenia container
zasobów i oraz pipeline
parametrów szablonu używanych w przebiegu potoku. Teraz możesz na przykład pisać testy zgodności, które oceniają repozytoria, kontenery i inne uruchomienia potoków używane przez potok.
Oto przykład nowej treści odpowiedzi.
"resources":
{
"repositories":
{
"self":
{
"repository":
{
"id": "e5c55144-277b-49e3-9905-2dc162e3f663",
"type": "azureReposGit"
},
"refName": "refs/heads/main",
"version": "44153346ecdbbf66c68c20fadf27f53ea1394db7"
},
"MyFirstProject":
{
"repository":
{
"id": "e5c55144-277b-49e3-9905-2dc162e3f663",
"type": "azureReposGit"
},
"refName": "refs/heads/main",
"version": "44153346ecdbbf66c68c20fadf27f53ea1394db7"
}
},
"pipelines":
{
"SourcePipelineResource":
{
"pipeline":
{
"url": "https://dev.azure.com/fabrikam/20317ad0-ae49-4588-ae92-6263028b4d83/_apis/pipelines/51?revision=3",
"id": 51,
"revision": 3,
"name": "SourcePipeline",
"folder": "\\source"
},
"version": "20220801.1"
}
},
"containers":
{
"windowscontainer":
{
"container":
{
"environment":
{
"Test": "test"
},
"mapDockerSocket": false,
"image": "mcr.microsoft.com/windows/servercore:ltsc2019",
"options": "-e 'another_test=tst'",
"volumes":
[
"C:\\Users\\fabrikamuser\\mount-fabrikam:c:\\mount-fabrikam"
],
"ports":
[
"8080:80",
"6379"
]
}
}
}
},
"templateParameters":
{
"includeTemplateSteps": "True"
}
Ogólna obsługa szablonu dostępności w edytorze YAML
Szablony są często używaną funkcją w potokach YAML. Są one łatwym sposobem udostępniania fragmentów potoku. Są one również zaawansowanym mechanizmem weryfikacji lub wymuszania zabezpieczeń i ładu za pośrednictwem potoku.
Usługa Azure Pipelines obsługuje edytor YAML, który może być przydatny podczas edytowania potoku. Jednak edytor nie obsługiwał szablonów do tej pory. Autorzy potoków YAML nie mogą uzyskać pomocy za pośrednictwem funkcji IntelliSense podczas korzystania z szablonu. Autorzy szablonów nie mogli korzystać z edytora YAML. W tej wersji dodajemy obsługę szablonów w edytorze YAML.
Podczas edytowania głównego pliku YAML usługi Azure Pipelines możesz dołączyć lub rozszerzyć szablon. Po wpiseniu nazwy szablonu zostanie wyświetlony monit o zweryfikowanie szablonu. Po zweryfikowaniu edytor YAML rozumie schemat szablonu, w tym parametry wejściowe.
Po weryfikacji możesz przejść do szablonu. Będzie można wprowadzać zmiany w szablonie przy użyciu wszystkich funkcji edytora YAML.
Istnieją znane ograniczenia:
- Jeśli szablon ma wymagane parametry, które nie są podane jako dane wejściowe w głównym pliku YAML, walidacja zakończy się niepowodzeniem i wyświetli monit o podanie tych danych wejściowych. W idealnym środowisku sprawdzanie poprawności nie powinno być blokowane i powinno być możliwe wypełnienie parametrów wejściowych przy użyciu funkcji IntelliSense.
- Nie można utworzyć nowego szablonu z poziomu edytora. Można używać lub edytować tylko istniejące szablony.
Nowa wstępnie zdefiniowana zmienna systemowa
Wprowadziliśmy nową wstępnie zdefiniowaną zmienną systemową o nazwie Build.DefinitionFolderPath
, której wartością jest ścieżka folderu definicji potoku kompilacji. Zmienna jest dostępna zarówno w potokach YAML, jak i w klasycznych potokach kompilacji.
Jeśli na przykład potok znajduje się w FabrikamFiber\Chat
folderze w usłudze Azure Pipelines, wartość to Build.DefinitionFolderPath
FabrikamFiber\Chat
.
Dodano obsługę funkcji dzielenia ciągów w wyrażeniach szablonu YAML
Potoki YAML zapewniają wygodne sposoby zmniejszania duplikowania kodu, takich jak pętla przez each
wartość listy lub właściwości obiektu.
Czasami zestaw elementów do iterowania jest reprezentowany jako ciąg. Na przykład gdy lista środowisk do wdrożenia w programie jest definiowana przez ciąg integration1, integration2
.
Gdy wysłuchaliśmy opinii społeczności deweloperów, słyszeliśmy, że potrzebujesz funkcji ciągu split
w wyrażeniach szablonów YAML.
Teraz możesz utworzyć ciąg i wykonać split
iterację each
po jego podciągach.
variables:
environments: integration1, integration2
jobs:
- job: Deploy
steps:
- ${{ each env in split(variables.environments, ', ') }}:
- script: ./deploy.sh -e ${{ env }}
- script: ./runTest.sh -e ${{ env }}
Wyrażenia szablonów w definicji zasobu repozytorium
Dodaliśmy obsługę wyrażeń szablonu podczas definiowania ref
właściwości repository
zasobu w potoku YAML. Była to bardzo żądana funkcja przez naszą społeczność deweloperów.
Istnieją przypadki użycia, gdy potok ma wyewidencjonować różne gałęzie tego samego zasobu repozytorium.
Załóżmy na przykład, że masz potok, który kompiluje własne repozytorium, a w tym celu musi wyewidencjonować bibliotekę z repozytorium zasobów. Ponadto załóżmy, że chcesz, aby potok wyewidencjonowył tę samą gałąź biblioteki, której używa sam. Jeśli na przykład potok jest uruchamiany w main
gałęzi, należy wyewidencjonować main
gałąź repozytorium biblioteki. Jeśli potoki działają w dev
gałęzi, należy wyewidencjonować dev
gałąź biblioteki.
Do dziś trzeba było jawnie określić gałąź do wyewidencjonowania i zmienić kod potoku za każdym razem, gdy gałąź ulegnie zmianie.
Teraz możesz użyć wyrażeń szablonu, aby wybrać gałąź zasobu repozytorium. Zapoznaj się z poniższym przykładem kodu YAML, który ma być używany dla gałęzi innych niż główne potoku:
resources:
repositories:
- repository: library
type: git
name: FabrikamLibrary
ref: ${{ variables['Build.SourceBranch'] }}
steps:
- checkout: library
- script: echo ./build.sh
- script: echo ./test.sh
Po uruchomieniu potoku możesz określić gałąź do wyewidencjonowania library
repozytorium.
Określanie wersji szablonu do rozszerzenia w czasie kolejki kompilacji
Szablony stanowią doskonały sposób na zmniejszenie duplikowania kodu i zwiększenie bezpieczeństwa potoków.
Jednym z popularnych przypadków użycia jest domowy szablony we własnym repozytorium. Zmniejsza to sprzężenie między szablonem a potokami, które go rozszerzają, i ułatwia niezależne rozwijanie szablonu i potoków.
Rozważmy poniższy przykład, w którym szablon jest używany do monitorowania wykonywania listy kroków. Kod szablonu Templates
znajduje się w repozytorium.
# template.yml in repository Templates
parameters:
- name: steps
type: stepList
default: []
jobs:
- job:
steps:
- script: ./startMonitoring.sh
- ${{ parameters.steps }}
- script: ./stopMonitoring.sh
Załóżmy, że masz potok YAML, który rozszerza ten szablon znajdujący się w repozytorium FabrikamFiber
. Do dziś nie można było dynamicznie określić ref
właściwości templates
zasobu repozytorium w przypadku używania repozytorium jako źródła szablonu. Oznaczało to, że trzeba zmienić kod potoku, jeśli chcesz, aby potok był następujący: rozszerzenie szablonu z innej gałęzi rozszerza szablon z tej samej nazwy gałęzi co potok, niezależnie od gałęzi, w której uruchomiono potok
Wprowadzenie wyrażeń szablonu w definicji zasobu repozytorium umożliwia napisanie potoku w następujący sposób:
resources:
repositories:
- repository: templates
type: git
name: Templates
ref: ${{ variables['Build.SourceBranch'] }}
extends:
template: template.yml@templates
parameters:
steps:
- script: echo ./build.sh
- script: echo ./test.sh
W ten sposób potok rozszerzy szablon w tej samej gałęzi co gałąź, w której działa potok, aby upewnić się, że gałęzie potoku i szablonu są zawsze zgodne. Oznacza to, że uruchomienie potoku w gałęzi dev
spowoduje rozszerzenie szablonu określonego przez template.yml
plik w dev
gałęzi templates
repozytorium.
Możesz też wybrać w czasie kompilacji kolejki, która gałąź repozytorium szablonów ma być używana, pisząc następujący kod YAML.
parameters:
- name: branch
default: main
resources:
repositories:
- repository: templates
type: git
name: Templates
ref: ${{ parameters.branch }}
extends:
template: template.yml@templates
parameters:
steps:
- script: ./build.sh
- script: ./test.sh
Teraz możesz mieć potok w gałęzi main
rozszerzać szablon z gałęzi dev
w jednym przebiegu i rozszerzać szablon z gałęzi main
w innym przebiegu bez zmiany kodu potoku.
Podczas określania wyrażenia szablonu dla ref
właściwości zasobu repozytorium można użyć parameters
i wstępnie zdefiniowanych zmiennych systemowych, ale nie można użyć zmiennych zdefiniowanych przez interfejs użytkownika yaML ani pipelines.
Wyrażenia szablonu w definicji zasobu kontenera
Dodaliśmy obsługę wyrażeń szablonu podczas definiowania endpoint
właściwości container
, volumes
i ports
options
zasobu w potoku YAML. Była to bardzo żądana funkcja przez naszą społeczność deweloperów.
Teraz możesz pisać potoki YAML, takie jak poniżej.
parameters:
- name: endpointName
default: AzDOACR
type: string
resources:
containers:
- container: linux
endpoint: ${{ parameters.endpointName }}
image: fabrikamfiber.azurecr.io/ubuntu:latest
jobs:
- job:
container: linux
steps:
- task: CmdLine@2
inputs:
script: 'echo Hello world'
Możesz użyć parameters.
wyrażeń szablonu i variables.
. W przypadku zmiennych można używać tylko tych zdefiniowanych w pliku YAML, ale nie zdefiniowanych w interfejsie użytkownika potoków. Jeśli na przykład ponownie zdefiniowasz zmienną przy użyciu poleceń dziennika agenta, nie będzie to miało żadnego wpływu.
Ulepszenia zaplanowanych kompilacji
Rozwiązano problem powodujący uszkodzenie informacji o harmonogramie potoku, a potok nie był ładowany. Było to spowodowane na przykład tym, że nazwa gałęzi przekroczyła określoną liczbę znaków.
Ulepszony komunikat o błędzie podczas niepowodzenia ładowania potoków
Usługa Azure Pipelines udostępnia kilka typów wyzwalaczy w celu skonfigurowania sposobu uruchamiania potoku. Jednym ze sposobów uruchamiania potoku jest użycie zaplanowanych wyzwalaczy. Czasami informacje o zaplanowanym uruchomieniu potoku są uszkodzone i mogą powodować niepowodzenie ładowania. Wcześniej wyświetlaliśmy wprowadzający w błąd komunikat o błędzie, twierdząc, że potok nie został znaleziony. W przypadku tej aktualizacji rozwiązaliśmy ten problem i zwracamy komunikat o błędzie informacyjny. W przyszłości otrzymasz komunikat podobny do: Dane harmonogramu kompilacji są uszkodzone , jeśli nie można załadować potoku.
Nie synchronizuj tagów podczas pobierania repozytorium Git
Zadanie wyewidencjonowania używa --tags
opcji pobierania zawartości repozytorium Git. Powoduje to pobranie wszystkich tagów przez serwer oraz wszystkich obiektów wskazywanych przez te tagi. Zwiększa to czas uruchamiania zadania w potoku — szczególnie jeśli masz duże repozytorium z wieloma tagami. Ponadto zadanie wyewidencjonowania synchronizuje tagi nawet wtedy, gdy włączysz opcję płytkiego pobierania, co może pokonać jego cel. Aby zmniejszyć ilość danych pobranych lub ściągniętych z repozytorium Git, dodaliśmy teraz nową opcję do zadania w celu kontrolowania zachowania synchronizacji tagów. Ta opcja jest dostępna zarówno w potokach klasycznych, jak i YAML.
To zachowanie może być kontrolowane z pliku YAML lub z interfejsu użytkownika.
Aby zrezygnować z synchronizacji tagów za pośrednictwem pliku YAML, dodaj element fetchTags: false
do kroku wyewidencjonowania. fetchTags
Jeśli opcja nie jest określona, jest taka sama jak w przypadku fetchTags: true
użycia.
steps:
- checkout: self # self represents the repo where the initial Pipelines YAML file was found
clean: boolean # whether to fetch clean each time
fetchTags: boolean # whether to sync the tags
fetchDepth: number # the depth of commits to ask Git to fetch
lfs: boolean # whether to download Git-LFS files
submodules: boolean | recursive # set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules
path: string # path to check out source code, relative to the agent's build directory (e.g. \_work\1)
persistCredentials: boolean # set to 'true' to leave the OAuth token in the Git config after the initial fetch
Jeśli chcesz zmienić zachowanie istniejących potoków YAML, może być wygodniejsze ustawienie tej opcji w interfejsie użytkownika zamiast aktualizowania pliku YAML. Aby przejść do interfejsu użytkownika, otwórz edytor YAML dla potoku, wybierz pozycję Wyzwalacze, a następnie pozycję Przetwarzanie, a następnie krok Wyewidencjonuj.
Jeśli określisz to ustawienie zarówno w pliku YAML, jak i w interfejsie użytkownika, pierwszeństwo ma wartość określona w pliku YAML.
W przypadku wszystkich nowych potoków tworzonych (YAML lub Klasyczny) tagi są domyślnie synchronizowane. Ta opcja nie zmienia zachowania istniejących potoków. Tagi będą nadal synchronizowane w tych potokach, chyba że jawnie zmienisz opcję zgodnie z powyższym opisem.
Artifacts
Zaktualizowano domyślne uprawnienia kanału informacyjnego
Konta usługi Project Collection Build Service będą domyślnie mieć rolę Współpracownik, gdy zostanie utworzony nowy kanał informacyjny usługi Azure Artifacts o zakresie kolekcji projektów zamiast bieżącej roli Współautor .
Nowy interfejs użytkownika do wyszukiwania pakietów nadrzędnych
Wcześniej można było zobaczyć pakiety nadrzędne, jeśli masz kopię kanału informacyjnego. Ból był taki, że nie można wyszukać pakietów, które są dostępne w górę i które nie zostały jeszcze zapisane w kanale informacyjnym. Teraz możesz wyszukać dostępne pakiety nadrzędne przy użyciu nowego interfejsu użytkownika kanału informacyjnego.
Usługa Azure Artifacts udostępnia teraz interfejs użytkownika, który umożliwia wyszukiwanie pakietów w źródłach nadrzędnych i zapisywanie wersji pakietów w kanale informacyjnym. Jest to zgodne z celem firmy Microsoft w celu poprawy naszych produktów i usług.
Raportowanie
Pokaż element nadrzędny w widżecie wyników zapytania
Widżet Wyniki zapytania obsługuje teraz nazwę elementu nadrzędnego i bezpośredni link do tego elementu nadrzędnego.
Kopiowanie pulpitu nawigacyjnego
W tej wersji dołączamy kopiowanie pulpitu nawigacyjnego.
Data ostatniego dostępu do pulpitów nawigacyjnych i zmodyfikowana przez
Jednym z wyzwań związanych z umożliwieniem zespołom tworzenia kilku pulpitów nawigacyjnych jest zarządzanie przestarzałymi i nieużywanym czyszczeniem ich. Wiedza, kiedy pulpit nawigacyjny został ostatnio odwiedzony lub zmodyfikowany, jest ważną częścią zrozumienia, które z nich można usunąć. W tej wersji dołączyliśmy dwie nowe kolumny do strony katalogu Pulpity nawigacyjne. Data ostatniego dostępu będzie śledzić, kiedy pulpit nawigacyjny został ostatnio odwiedzony. Zmodyfikowany przez śledzi, kiedy pulpit nawigacyjny był ostatnio edytowany i przez kogo.
Informacje zmodyfikowane przez będą również wyświetlane na samej stronie pulpitu nawigacyjnego.
Mamy nadzieję, że te nowe pola pomogą administratorom projektu zrozumieć poziom aktywności dla pulpitów nawigacyjnych, aby podejmować wykształconą decyzję, jeśli powinny zostać usunięte.
Widoki analizy są teraz dostępne
Funkcja Widoki analizy jest w stanie wersji zapoznawczej przez dłuższy czas w naszej hostowanej wersji produktu. W tej wersji z przyjemnością ogłaszamy, że ta funkcja jest teraz dostępna dla wszystkich kolekcji projektów.
W nawigacji widoki analizy zostały przeniesione z karty Przegląd do karty Tablice .
Widok Analiza zapewnia uproszczony sposób określania kryteriów filtrowania raportu usługi Power BI na podstawie danych analizy. Jeśli nie znasz widoków analitycznych, zapoznaj się z dokumentacją, aby dogonić Cię:
- Informacje o widokach analizy
- Tworzenie widoku analizy w usłudze Azure DevOps
- Zarządzanie widokami analizy
- Tworzenie raportu usługi Power BI z domyślnym widokiem analizy
- Nawiązywanie połączenia z usługą Analytics za pomocą łącznika danych usługi Power BI
Widżet żądania ściągnięcia dla wielu repozytoriów jest teraz dostępny
Z radością ogłaszamy, że widżet żądania ściągnięcia dla wielu repozytoriów jest dostępny w usłudze Azure DevOps Server 2022.1. Dzięki temu nowemu widżetowi można bez wysiłku wyświetlać żądania ściągnięcia z maksymalnie 10 różnych repozytoriów w jednej, usprawnionej liście, co ułatwia niż kiedykolwiek pozostawanie na bieżąco z żądaniami ściągnięcia.
Wprowadzenie rozwiązane jako ukończone w wykresach burndown i burnup
Rozumiemy znaczenie dokładnego odzwierciedlenia postępu zespołu, w tym rozwiązanych elementów, które zostały ukończone na wykresach. Po wybraniu prostej opcji przełączania można teraz wyświetlać rozwiązane elementy jako ukończone, co zapewnia prawdziwe odbicie stanu postępu zespołu. To ulepszenie umożliwia dokładniejsze śledzenie i planowanie, umożliwiając zespołom podejmowanie świadomych decyzji w oparciu o rzeczywisty postęp. Korzystaj z ulepszonej przejrzystości i lepszej analizy dzięki zaktualizowanym wykresom postępu i wypalania w raportowaniu.
Witryna Wiki
Obsługa dodatkowych typów diagramów na stronach typu wiki
Uaktualniliśmy wersję wykresów syreny używanych na stronach wiki do wersji 8.13.9. Dzięki temu uaktualnieniu możesz teraz uwzględnić następujące diagramy i wizualizacje na stronach wiki usługi Azure DevOps:
- Schemat blokowy
- Diagramy sekwencji
- Wykresy Gantta
- Wykresy kołowe
- Diagramy wymagań
- Diagramy stanu
- Podróż użytkownika
Diagramy, które są w trybie eksperymentalnym, takie jak Relacja jednostki i Git Graph, nie są uwzględniane. Aby uzyskać więcej informacji na temat nowych funkcji, zobacz syreny informacje o wersji.
Opinia
Chcemy poznać Twoje zdanie! Możesz zgłosić problem lub podać pomysł i śledzić go za pośrednictwem społeczności deweloperów i uzyskać porady na temat stack Overflow.