Поддержка диких карта и условных выражений в файлах конвейера YAML

В этом спринте мы включили поддержку диких карта и условных выражений в файлы конвейера YAML. Кроме того, мы внесли несколько обновлений в размещенные образы Azure Pipelines.

Дополнительные сведения см. в приведенных ниже описаниях функций.

Azure Pipelines

Azure Repos

Azure Pipelines

Новые условные выражения YAML

Написание условных выражений в файлах YAML стало проще с помощью и ${{ elseif }} выражений${{ else }}. Ниже приведены примеры использования этих выражений в файлах конвейеров 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

Поддержка подстановочных знаков в фильтрах путей

Дикие карта можно использовать при указании ветвей включения и исключения для триггеров CI или PR в файле YAML конвейера. Однако их нельзя использовать при указании фильтров путей. Например, нельзя включать все пути, которые соответствуют src/app/**/myapp*. Это было отмечено как неудобства несколькими клиентами. Это обновление заполняет этот пробел. Теперь можно использовать дикие карта символы (**, *или?) при указании фильтров путей.

Поддержка нескольких состояний в Bitbucket

Azure Pipelines интегрируется с репозиториями Bitbucket и поддерживает триггеры CI и PR. Можно настроить несколько конвейеров из одного репозитория Bitbucket. Однако, когда эти конвейеры были завершены, в Bitbucket можно увидеть только одно состояние. Мы слышали отзывы от Сообщество разработчиков с просьбой просмотреть состояние каждого конвейера отдельно в Bitbucket. В этом обновлении мы обновили вызовы API к Bitbucket и передайте дополнительные сведения об имени конвейера.

Build status

Разрешение для участников пропускать поиск комментариев к запросам на вытягивание до проверки сборки

При использовании Azure Pipelines с репозиториями GitHub рекомендуется не запускать конвейер проверки pr для вкладов, полученных из вилированного репозитория. Рекомендуется сначала ознакомиться с изменением одного из участников репозитория, а затем добавить комментарий к pr для активации конвейера. Эти параметры можно настроить, выбрав меню "Триггеры" (для конвейеров YAML) или вкладку "Триггеры" (для классических конвейеров сборки) в веб-редакторе конвейера. Вместо того, чтобы требовать, чтобы каждый pr-запрос от вилки был сначала проверен членом команды, вы также можете применить эту политику только к вкладу, поступающим от членов группы, не являющихся участниками команды.

В этом обновлении мы можем пропустить поиск комментариев pr от вкладов, полученных любым участник. При создании вилки и создании pr в вышестоящий вы не считаетсяе участник в репозиторий вышестоящий, пока ваш pr-запрос не будет объединен. После объединения pr вы будете считаться участник. Выбрав новый параметр, показанный ниже, когда член группы отправляет pr из вилки в первый раз, кто-то из вашей команды должен будет просмотреть PR и добавить комментарий для активации конвейера. Но после объединения PR любые дальнейшие вклады, внесенные этим участником команды, напрямую активируют конвейер, не ожидая комментариев pr.

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

Windows Server 2022 с Visual Studio 2022 теперь предоставляется в агентах, размещенных Майкрософт (предварительная версия)

Windows Server 2022 и Visual Studio Enterprise 2022 Preview теперь доступны в предварительной версии агентов, размещенных в Майкрософт. Его можно использовать, ссылаясь windows-2022 на образ в конвейере.

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'

Если вы ссылаетесь на пул windows-latest в конвейерах YAML, он по-прежнему будет означать windows-2019, а не windows-2022, а последний находится в предварительной версии.

Образ конвейера Windows Server 2022 имеет различные средства и версии инструментов по сравнению с Windows Server 2019. Сведения о проблеме с объявлением программного обеспечения и в репозитории виртуальных сред документации можно просмотреть.

Общая доступность macOS 11 на размещенных майкрософт агентах

macOS 11 теперь общедоступен для агентов, размещенных в Майкрософт. Его можно использовать, ссылаясь macos-11 на образ в конвейере.

pool:
  vmImage: macos-11

Образ конвейера macOS 11 имеет различные инструменты и инструменты, чтобы узнать больше об этой версии, см. полную документацию здесь.

Удаление образа Ubuntu 16.04 на размещенных майкрософт агентах

Как было объявлено ранее, мы удалим образ Ubuntu 16.04 из агентов, размещенных корпорацией Майкрософт, 20 сентября 2021 г. Традиционная поддержка Ubuntu 16.04 по каноничным версиям закончилась в апреле 2021 года. Вам потребуется перенести конвейеры ubuntu-16.04 в ubuntu-18.04 или ubuntu-latest, которые будут работать в Ubuntu 20.04 LTS.

Сборки, использующие Ubuntu-16.04, уже имеют предупреждение, вошедшего в систему. Чтобы убедиться, что все знают об этом изменении, мы запланировали 2 коротких "браунутов". Сборки Ubuntu 16.04 завершаются сбоем в течение периода брауна. Поэтому рекомендуется перенести рабочие процессы до 6 сентября 2021 г.

Браунуты запланированы на следующие даты и время (обратите внимание, что они были продлены за час с ранее объявленного времени): 6 сентября 2021 г. 4:00 UTC – 10:00 UTC 14 сентября 2021 г. 4:00 UTC – 10:00 utc

Azure Repos

Общая доступность новых страниц TFVC

Мы обновляли различные страницы в Azure DevOps, чтобы использовать новую веб-платформу с целью повышения согласованности и повышения доступности различных служб. Страницы TFVC были обновлены для использования новой веб-платформы, и эти изменения были в предварительной версии в течение нескольких месяцев. В этом обновлении мы делаем новые страницы TFVC общедоступными. В этом обновлении вы больше не увидите функцию предварительной версии "Новые страницы TFVC" в параметрах пользователя.

Возможность запретить предоставление разрешений на управление ветвями авторам этих ветвей

При создании новой ветви в этой ветви вы получите сообщение "Управление разрешениями". Это разрешение позволяет изменять разрешения других пользователей или допускать дополнительных пользователей для участия в этой ветви. Например, создатель ветви может использовать это разрешение, чтобы разрешить другому внешнему пользователю вносить изменения в код. Кроме того, они могут разрешить конвейеру (удостоверение службы сборки) изменить код в этой ветви. В некоторых организациях с более высокими требованиями к соответствию пользователям не следует вносить такие изменения.

С помощью этого обновления вы можете настроить все репозитории в командном проекте и ограничить получение разрешения "Управление разрешениями". Для этого перейдите к параметрам проекта, выберите репозитории, а затем Параметры для всех репозиториев или определенного репозитория.

All repositories settings

Этот параметр включен по умолчанию, чтобы имитировать существующее поведение. Но вы можете отключить его, если вы хотите использовать эту новую функцию безопасности.

Запрет для пользователей вилок голосовать за свои вышестоящие запросы на вытягивание

С помощью Azure Repos пользователи с разрешением на чтение в репозитории могут вкрепить репозиторий и внести изменения в его вилку. Чтобы отправить запрос на вытягивание с изменениями в вышестоящий, пользователям требуется разрешение "внести вклад в запросы на вытягивание" на вышестоящий. Однако это разрешение также управляет тем, кто может голосовать за запросы на вытягивание в репозитории вышестоящий. В результате вы можете в конечном итоге в ситуациях, когда пользователь, который не является участник в репозитории, может отправить запрос на вытягивание и вызвать его объединение в зависимости от способа настройки политик ветви.

В организациях, которые способствуют внутренней исходной модели, вилки и участие являются общим шаблоном. Чтобы защитить и повысить этот шаблон дальше, мы изменим разрешение на голосование по запросу на вытягивание от "участие в запросе на вытягивание" на "участие". Однако это изменение не выполняется по умолчанию во всех организациях. Чтобы переключить это разрешение, необходимо выбрать новую политику в репозитории с именем "Строгий режим голосования". Рекомендуется сделать это, если вы используете вилки в Azure Repos.

Repository settings

Следующие шаги

Примечание.

Эти функции будут развернуты в течение следующих двух-трех недель.

Перейдите к Azure DevOps и посмотрите.

Отправка отзыва

Мы хотели бы услышать то, что вы думаете об этих функциях. Используйте меню справки, чтобы сообщить о проблеме или указать предложение.

Make a suggestion

Вы также можете получить советы и ваши вопросы, ответы сообщества на Stack Overflow.

Thanks,

Аарон Холлберг