Obsługa wdrożeń sekwencyjnych w przypadku używania kontroli blokady na wyłączność
W tym przebiegu rozszerzyliśmy możliwość wyłącznych kontroli blokad w usłudze Azure Pipelines w celu obsługi wdrożeń sekwencyjnych. Teraz możesz w kolejce wiele uruchomień w środowisku, aby umożliwić jednoczesne wykonywanie tylko jednego z nich.
Aby uzyskać szczegółowe informacje, zapoznaj się z następującymi opisami funkcji.
Azure Boards
Azure Pipelines
- Obsługa wdrożeń sekwencyjnych, a nie najnowszych tylko w przypadku używania kontroli blokady na wyłączność
- Obsługa wersji Quebec usługi ServiceNow
- Zmiana zasad preinstalacji zestawu SDK platformy .NET na agentach hostowanych w systemach Windows i macOS firmy Microsoft
- Zmiany zadań PublishBuildArtifacts i DownloadBuildArtifacts
Azure Boards
Wyświetl poprawną osobę w linkach zatwierdzania
Sekcja programowania w elemencie roboczym zawiera listę odpowiednich zatwierdzeń i żądań ściągnięcia. Możesz wyświetlić autora zatwierdzenia lub żądania ściągnięcia wraz ze skojarzonym czasem. Dzięki tej aktualizacji rozwiązaliśmy problem z niepoprawnym wyświetlaniem awatara autora w widoku.
Azure Pipelines
Obsługa wdrożeń sekwencyjnych, a nie najnowszych tylko w przypadku używania kontroli blokady na wyłączność
W potokach YAML kontrole służą do kontrolowania wykonywania etapów w chronionych zasobach. Jedną z typowych kontroli, których można użyć, jest wyłączna kontrola blokady. To sprawdzenie umożliwia kontynuowanie tylko jednego uruchomienia z potoku. Gdy wiele przebiegów próbuje wdrożyć w środowisku w tym samym czasie, kontrola anuluje wszystkie stare przebiegi i zezwala na wdrożenie najnowszego uruchomienia.
Anulowanie starych przebiegów jest dobrym rozwiązaniem, gdy wydania są zbiorcze i zawierają wszystkie zmiany kodu z poprzednich przebiegów. Istnieją jednak potoki, w których zmiany kodu nie są skumulowane. Dzięki tej nowej funkcji można zezwolić wszystkim przebiegom na kontynuowanie i wdrażanie sekwencyjnie w środowisku lub zachować poprzednie zachowanie anulowania starych przebiegów i zezwalania tylko na najnowsze. To zachowanie można określić przy użyciu nowej właściwości o nazwie lockBehavior
w pliku YAML potoku. Wartość sequential
oznacza, że wszystkie uruchomienia uzyskują blokadę sekwencyjnie do chronionego zasobu. Wartość runLatest
oznacza, że tylko najnowszy przebieg uzyskuje blokadę zasobu.
Aby użyć wyłącznego sprawdzania blokady sequential
we wdrożeniach lub runLatest
, wykonaj następujące kroki:
- Włącz kontrolę wyłącznych blokad w środowisku (lub inny chroniony zasób).
- W pliku YAML potoku określ nową właściwość o nazwie
lockBehavior
. Można to określić dla całego potoku lub dla danego etapu:
Ustaw na scenie:
stages:
- stage: A
lockBehavior: sequential
jobs:
- job: Job
steps:
- script: Hey!
Ustaw w potoku:
lockBehavior: runLatest
stages:
- stage: A
jobs:
- job: Job
steps:
- script: Hey!
Jeśli nie określisz elementu lockBehavior
, przyjmuje się, że jest to runLatest
.
Obsługa wersji Quebec 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 wersją Usługi ServiceNow w Quebecu. Potoki klasyczne i YAML działają teraz z Quebecem. Aby upewnić się, że ta integracja działa, przeprowadź uaktualnienie do nowej wersji aplikacji (4.188.0) ze sklepu Service Now Store. Aby uzyskać więcej informacji, zobacz Integracja z usługą ServiceNow Change Management.
Zmiana zasad preinstalacji zestawu .NET SDK na agentach systemu Windows i macOS hostowanych przez firmę Microsoft
Niedawno ogłosiliśmy zmianę zasad preinstalacji zestawu .NET SDK dla agentów systemu Ubuntu hostowanych przez firmę Microsoft. Teraz wprowadzamy tę samą zmianę dla agentów systemu Windows i macOS hostowanych przez firmę Microsoft.
Obecnie instalujemy wszystkie dostępne i obsługiwane wersje zestawu .NET SDK (2.1.x, 3.1.x, 5.0.x) na agentach hostowanych przez firmę Microsoft i macOS. To podejście zostanie zmienione na rzecz zainstalowania najnowszej wersji poprawki dla każdej wersji funkcji. Ta zmiana jest wprowadzana w celu zapewnienia większej ilości wolnego miejsca i nowych żądań narzędzi.
Co to oznacza?
Wersja zestawu SDK składa się z następujących części: x.y.znn
. z
jest wersją funkcji i nn
jest wersją poprawki. Na przykład w wersji 2.1.302 wersja funkcji to 3, a 02 to wersja poprawki. Zgodnie z nowym podejściem zainstalujemy tylko najnowszą wersję poprawki dla każdej wersji funkcji, tj. tylko wersja 2.1.302 zostanie zainstalowana dla wersji 2.1.3x, tylko 2.1.403 dla wersji 2.1.4x i tak dalej. Wszystkie wersje zestawu .NET SDK, które nie są najnowszymi wersjami poprawek, zostaną usunięte z obrazów systemu Windows i macOS 6 września. Ta zmiana ma wpływ na wszystkie wersje systemów Windows i macOS na agentach hostowanych przez firmę Microsoft.
Data docelowa
Wdrożenie zaktualizowanych obrazów rozpocznie się 6 września i potrwa od 3 do 4 dni.
Możliwy wpływ
Jeśli używasz pliku global.json, wpłynie to na kompilację w następujących przypadkach:
Kompilacja zakończy się niepowodzeniem, jeśli plik global.json zawiera rollForward: disable
właściwość i wersję zestawu SDK, która nie jest najnowszą wersją poprawki. Na przykład:
{
"sdk": {
"version": "3.1.100",
"rollForward": "disable"
}
}
Wersja zestawu .NET SDK zostanie automatycznie zmieniona na najnowszą poprawkę, jeśli plik global.json zawiera rollForward: patch
właściwość . Na przykład:
{
"sdk": {
"version": "3.1.100",
"rollForward": "patch"
}
}
rollForward
Jeśli pole nie zostanie określone w pliku global.json, nie będzie dla Ciebie żadnych zmian. Używany jest najnowszy zainstalowany poziom poprawek.
Jeśli musisz użyć dokładnej wersji zestawu .NET SDK, która nie jest najnowszą poprawką, użyj UseDotNet
zadania , aby zainstalować ją w ramach kompilacji:
steps:
- task: UseDotNet@2
displayName: 'Use .NET Core sdk'
inputs:
version: <dotnet version>
Zmiany zadań PublishBuildArtifacts i DownloadBuildArtifacts
Usługa Azure Pipelines obsługuje dwa zestawy zadań do publikowania/pobierania artefaktów. PublishPipelineArtifact i DownloadPipelineArtifact to nowsze i zalecane zadania do wykonania tych kroków.
PublishBuildArtifacts i DownloadBuildArtifacts to starsze zadania i nie mają tych samych optymalizacji wydajności i magazynowania, które znajdują się w odpowiednich zadaniach PipelineArtifact. Te starsze zadania miały również ograniczenia skalowania pod względem sposobu ich implementacji. Niektórzy z naszych większych klientów przekroczyli te limity.
Mimo że wszyscy klienci chcą przejść do zadań PipelineArtifact, musieliśmy również wykonać kilka kroków w celu rozwiązania problemu skalowalności starszych zadań BuildArtifact. W ramach najnowszej aktualizacji w celu zwiększenia skalowalności agenci usługi Azure Pipelines będą teraz bezpośrednio korzystać z artefaktów kompilacji za pośrednictwem domen magazynu obiektów blob (zamiast routingu za pośrednictwem domen tfs). Te potoki zaczną uzyskiwać dostęp do adresów IP i domen, które od dawna znajdują się na liście dozwolonych usługi Azure DevOps, ale mogą nie być używane wcześniej przez określone potoki.
Zaktualizowana implementacja zadań BuildArtifact wymaga uaktualnienia agenta, co powinno nastąpić automatycznie, chyba że automatyczne uaktualnienia zostały specjalnie wyłączone lub zapory są niepoprawnie skonfigurowane.
Jeśli agenci są uruchomioni w środowiskach zapór, które nie były zgodne z połączonymi instrukcjami, mogą wystąpić błędy podczas aktualizowania agenta lub w zadaniach PublishBuildArtifacts lub DownloadBuildArtifacts, dopóki konfiguracja zapory nie zostanie poprawiona.
Typowym objawem tego problemu są nagłe błędy związane z uzgadnianiem ssl lub błędami pobierania artefaktów, zazwyczaj w pulach wdrożeń przeznaczonych przez definicje Release Management. Alternatywnie, jeśli uaktualnienia agenta zostały zablokowane, możesz zauważyć, że wydania oczekują na agenta w puli, który nigdy nie zostanie dostarczony, lub że agenci przechodzą w tryb offline w połowie ich aktualizacji (ta ostatnia jest związana ze środowiskami, które błędnie blokują sieć CDN agenta).
Następne kroki
Uwaga
Te funkcje będą wdrażane w ciągu najbliższych dwóch do trzech tygodni.
Przejdź do usługi Azure DevOps i spójrz.
Jak przekazać opinię
Chcielibyśmy usłyszeć, co myślisz o tych funkcjach. Użyj menu Pomocy, aby zgłosić problem lub podać sugestię.
Możesz również uzyskać porady i pytania, na które odpowiada społeczność w witrynie Stack Overflow.
Dzięki,
Aaron Hallberg