Obsługa symboli wieloznacznych i wyrażeń warunkowych w plikach potoku YAML

W tym przebiegu uwzględniliśmy obsługę symboli wieloznacznych i wyrażeń warunkowych do plików potoku YAML. Ponadto wprowadziliśmy wiele aktualizacji obrazów hostowanych w usłudze Azure Pipelines.

Zapoznaj się z poniższymi opisami funkcji, aby uzyskać szczegóły.

Azure Pipelines

Azure Repos

Azure Pipelines

Nowe wyrażenia warunkowe YAML

Pisanie wyrażeń warunkowych w plikach YAML stało się łatwiejsze dzięki użyciu ${{ else }} wyrażeń i ${{ elseif }} . Poniżej przedstawiono przykłady używania tych wyrażeń w plikach potoków YAML.

steps:
- script: tool
  env:
    ${{ if parameters.debug }}:
      TOOL_DEBUG: true
      TOOL_DEBUG_DIR: _dbg
    ${{ else }}:
      TOOL_DEBUG: false
      TOOL_DEBUG_DIR: _dbg
variables:
  ${{ if eq(parameters.os, 'win') }}:
    testsFolder: windows
  ${{ elseif eq(parameters.os, 'linux') }}:
    testsFolder: linux
  ${{ else }}:
    testsFolder: mac

Obsługa symboli wieloznacznych w filtrach ścieżek

Symbole wieloznaczne mogą być używane podczas określania gałęzi dołączania i wykluczania wyzwalaczy ciągłej integracji lub żądania ściągnięcia w pliku YAML potoku. Nie można ich jednak używać podczas określania filtrów ścieżek. Na przykład nie można uwzględnić wszystkich ścieżek pasujących do src/app/**/myapp*elementu . Zostało to wskazane jako niedogodności dla kilku klientów. Ta aktualizacja wypełnia tę lukę. Teraz możesz użyć symboli wieloznacznych (**, *, lub ?) podczas określania filtrów ścieżek.

Obsługa wielu stanów w usłudze Bitbucket

Usługa Azure Pipelines integruje się z repozytoriami Bitbucket i obsługuje wyzwalacze ciągłej integracji i żądania ściągnięcia. Można skonfigurować wiele potoków z jednego repozytorium Bitbucket. Jednak po zakończeniu tych potoków w usłudze Bitbucket można zobaczyć tylko jeden stan. Wysłuchaliśmy opinii społeczności deweloperów z prośbą o wyświetlenie stanu każdego potoku oddzielnie w usłudze Bitbucket. Dzięki tej aktualizacji zaktualizowaliśmy wywołania interfejsu API do usługi Bitbucket i przekazaliśmy dodatkowe informacje o nazwie potoku.

Build status

Zezwalanie współautorom na pomijanie uzyskiwania komentarzy dotyczących żądań ściągnięcia przed weryfikacją kompilacji

W przypadku korzystania z usługi Azure Pipelines z repozytoriami GitHub zalecamy automatyczne uruchamianie potoku weryfikacji żądania ściągnięcia dla kontrybucjów otrzymanych z rozwidlenia repozytorium. Najlepszym rozwiązaniem jest najpierw przejrzenie zmiany przez jednego z współpracowników repozytorium, a następnie dodanie komentarza do żądania ściągnięcia w celu wyzwolenia potoku. Te ustawienia można skonfigurować, wybierając menu Wyzwalacze (dla potoków YAML) lub kartę Wyzwalacze (dla klasycznych potoków kompilacji) w edytorze internetowym potoku. Zamiast wymagać, aby każde żądanie ściągnięcia z rozwidlenia było najpierw przeglądane przez członka zespołu, można również wymusić te zasady tylko na wkładach pochodzących od członków innych niż członkowie zespołu.

Dzięki tej aktualizacji możemy pominąć wyszukiwanie komentarza do żądania ściągnięcia od kontrybutów otrzymanych przez dowolnego współautora. Jako członek nienależący do zespołu podczas tworzenia rozwidlenia i tworzenia żądania ściągnięcia do nadrzędnego strumienia żądania ściągnięcia nie jest uważany za współautora do nadrzędnego repozytorium, dopóki żądanie ściągnięcia nie zostanie scalone. Po scaleniu żądania ściągnięcia zostaniesz uznany za współautora. Po wybraniu nowej opcji pokazanej poniżej, gdy członek inny niż zespół przesyła żądanie ściągnięcia z rozwidlenia po raz pierwszy, ktoś w twoim zespole będzie musiał przejrzeć żądanie ściągnięcia i dodać komentarz, aby wyzwolić potok. Jednak po scaleniu żądania ściągnięcia wszelkie dalsze współtworzenia dokonane przez tego nienależącego do zespołu będą bezpośrednio wyzwalać potok bez oczekiwania na komentarz żądania ściągnięcia.

Require a team member's comment before building a pull request

System Windows Server 2022 z programem Visual Studio 2022 jest teraz dostępny na agentach hostowanych przez firmę Microsoft (wersja zapoznawcza)

Systemy Windows Server 2022 i Visual Studio Enterprise 2022 (wersja zapoznawcza) są teraz dostępne w wersji zapoznawczej dla agentów hostowanych przez firmę Microsoft. Można go używać, odwołując windows-2022 się do obrazu w potoku.

pool:
  vmImage: 'windows-2022'

steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
  inputs:
    restoreSolution: '**/*.sln'
- task: VSBuild@1 # Visual Studio 2022 build
  inputs:
    solution: '**/*.sln'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
    platform: 'Any CPU'
    configuration: 'Release'

Jeśli odwołujesz się do najnowszej puli systemu Windows w potokach YAML, nadal będzie to oznaczać windows-2019, a nie windows-2022, podczas gdy ten ostatni jest w wersji zapoznawczej.

Obraz potoku systemu Windows Server 2022 ma różne narzędzia i wersje narzędzi w porównaniu z systemem Windows Server 2019. Szczegółowe informacje można znaleźć w temacie Problem z ogłoszeniem oprogramowania i w repozytorium dokumentacji środowisk wirtualnych.

Ogólna dostępność systemu macOS 11 na agentach hostowanych przez firmę Microsoft

System macOS 11 jest teraz ogólnie dostępny dla agentów hostowanych przez firmę Microsoft. Można go używać, odwołując macos-11 się do obrazu w potoku.

pool:
  vmImage: macos-11

Obraz potoku systemu macOS 11 ma różne narzędzia i narzędzia, aby dowiedzieć się więcej o tej wersji, możesz zapoznać się z pełną dokumentacją tutaj.

Usuwanie obrazu systemu Ubuntu 16.04 na agentach hostowanych przez firmę Microsoft

Jak ogłoszono wcześniej, w dniu 20 września 2021 r. usuniemy obraz systemu Ubuntu 16.04 z agentów hostowanych przez firmę Microsoft. Tradycyjne 5-letnie wsparcie systemu Ubuntu 16.04 przez Canonical zakończyło się w kwietniu 2021 r. Należy przeprowadzić migrację potoków ubuntu-16.04 do systemu ubuntu-18.04 lub ubuntu-latest, które będą działać w systemie Ubuntu 20.04 LTS.

Kompilacje korzystające z systemu Ubuntu-16.04 mają już zarejestrowane ostrzeżenie. Aby upewnić się, że wszyscy wiedzą o tej zmianie, zaplanowaliśmy 2 krótkie "brownouts". Kompilacje systemu Ubuntu 16.04 zakończy się niepowodzeniem w okresie brownout. W związku z tym zaleca się migrowanie przepływów pracy przed 6 września 2021 r.

Brownouts są zaplanowane na następujące daty i godziny (Należy pamiętać, że zostały one przedłużone o godzinę od wcześniej ogłoszonych godzin): 6 września 2021 r. 14:00 UTC – 10:00 UTC 14 września 2021 r. 14:00 UTC – 10:00 UTC

Azure Repos

Nowe strony kontroli wersji serwera Team Foundation są ogólnie dostępne

Zaktualizowaliśmy różne strony w usłudze Azure DevOps, aby użyć nowej platformy internetowej, aby zapewnić spójność i dostępność środowiska w różnych usługach. Strony kontroli wersji serwera Team Foundation zostały zaktualizowane w celu korzystania z nowej platformy internetowej, a te zmiany zostały wprowadzone w wersji zapoznawczej od kilku miesięcy. Dzięki tej aktualizacji udostępniamy nowe strony kontroli wersji serwera Team Foundation. Dzięki tej aktualizacji w ustawieniach użytkownika nie będzie już widoczna funkcja w wersji zapoznawczej o nazwie "Nowe strony tfVC".

Konfigurowanie ustawienia określającego, że twórcy gałęzi nie mają dostępu do polecenia „Zarządzaj uprawnieniami” w swoich gałęziach

Podczas tworzenia nowej gałęzi otrzymujesz pozycję "Zarządzaj uprawnieniami" w tej gałęzi. To uprawnienie umożliwia zmianę uprawnień innych użytkowników lub przyznanie dodatkowych użytkowników do współtworzenia tej gałęzi. Na przykład twórca gałęzi może użyć tego uprawnienia, aby umożliwić innemu użytkownikowi zewnętrznemu wprowadzanie zmian w kodzie. Mogą też zezwolić potokowi (tożsamości usługi kompilacji) na zmianę kodu w tej gałęzi. W niektórych organizacjach z wyższymi wymaganiami dotyczącymi zgodności użytkownicy nie powinni mieć możliwości wprowadzania takich zmian.

Dzięki tej aktualizacji można skonfigurować wszystkie repozytoria w projekcie zespołowym i ograniczyć twórcom gałęzi uzyskanie uprawnień "Zarządzanie uprawnieniami". W tym celu przejdź do ustawień projektu, wybierz pozycję Repozytoria, a następnie Ustawienia dla wszystkich repozytoriów lub określonego repozytorium.

All repositories settings

To ustawienie jest domyślnie włączone, aby naśladować istniejące zachowanie. Możesz jednak wyłączyć tę funkcję, jeśli chcesz korzystać z tej nowej funkcji zabezpieczeń.

Uniemożliwianie użytkownikom rozwidleń głosowania na ich żądania ściągnięcia w repozytorium nadrzędnym

Dzięki usłudze Azure Repos użytkownicy z uprawnieniami do odczytu w repozytorium mogą rozwidlić repozytorium i wprowadzać zmiany w rozwidleniu. Aby przesłać żądanie ściągnięcia ze zmianami do nadrzędnego strumienia, użytkownicy muszą mieć uprawnienie "współtworzenie żądań ściągnięcia" w nadrzędnym strumieniu. Jednak to uprawnienie określa również, kto może głosować na żądania ściągnięcia w repozytorium nadrzędnym. W związku z tym można utworzyć sytuację, w której użytkownik, który nie jest współautorem repozytorium, może przesłać żądanie ściągnięcia i spowodować scalenie go w zależności od sposobu konfigurowania zasad gałęzi.

W organizacjach, które promują model wewnętrzny źródła, rozwidlenie i współtworzenie jest typowym wzorcem. Aby dodatkowo zabezpieczyć i promować ten wzorzec, zmieniamy uprawnienia do głosowania nad żądaniem ściągnięcia z "współtworzenia żądań ściągnięcia" na "współtworzenie". Jednak ta zmiana nie jest domyślnie wprowadzana we wszystkich organizacjach. Musisz wyrazić zgodę i wybrać nowe zasady w repozytorium o nazwie "Tryb ścisłego głosowania", aby przełączyć to uprawnienie. Zalecamy, aby to zrobić, jeśli korzystasz z rozwidlenia w usłudze Azure Repos.

Repository settings

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 przyjrzyj się.

Jak przekazać opinię

Chcielibyśmy usłyszeć, co myślisz o tych funkcjach. Użyj menu Pomocy, aby zgłosić problem lub podać sugestię.

Make a suggestion

Możesz również uzyskać porady i odpowiedzi na pytania społeczności w witrynie Stack Overflow.

Dzięki,

Aaron Hallberg