Устранено несколько запросов из Сообщество разработчиков

В ответ на ваши отзывы мы определили несколько функций, запрошенных в Сообщество разработчиков. В разделе Конвейеры добавлена поддержка функции разбиения строк в выражении YAML. Кроме того, теперь можно отключить отображение последнего сообщения о фиксации для выполнения конвейера. В разделе Планы доставки мы увеличили лимит команды с 15 до 20.

Дополнительные сведения см. в заметках о выпуске.

Azure Boards

Azure Pipelines

Azure Boards

Увеличение лимита группы планов доставки с 15 до 20

Планы доставки позволяют просматривать несколько невыполненных работ и несколько команд в организации. Ранее можно было просмотреть 15 невыполненных работ по командам, включая сочетание невыполненных работ и команд из разных проектов. В этом спринте мы увеличили максимальное ограничение с 15 до 20.

Исправлена ошибка в API получения ссылок на рабочие элементы отчетов, чтобы вернуть правильное значение remoteUrl для System.LinkTypes.Remote.Related типов ссылок. До этого исправления мы возвращали неправильное название организации и отсутствующий идентификатор проекта.

Новые исправления ошибок в Центре Досок

В этом спринте мы исправили несколько ошибок для New Boards Hub. Список исправлений ошибок можно найти в записи блога New Boards Hub( Обновление Sprint 209).

Azure Pipelines

Отключить отображение последнего сообщения о фиксации для выполнения конвейера

Ранее пользовательский интерфейс конвейеров использовался для отображения последнего сообщения о фиксации при отображении выполнения конвейера.

Пример последнего сообщения о фиксации

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

В этом обновлении мы добавили новое свойство YAML с именем appendCommitMessageToRunName, которое позволяет делать именно это. По умолчанию свойству присвоено значение true. Если задать для него значение false, при выполнении конвейера BuildNumberбудет отображаться только .

Пример выполнения конвейера с номером сборки

Пример выполнения конвейера с сообщением о последней фиксации

Потребляемые ресурсы и параметры шаблона в REST API выполнения конвейеров

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

Ниже приведен пример нового текста ответа.

"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"
}

Добавлена поддержка функции разделения строк в выражениях шаблона YAML.

Конвейеры YAML предоставляют удобные способы сокращения дублирования кода, такие как циклическое переключение each значений списка или свойства объекта.

Иногда набор элементов для итерации представляется в виде строки. Например, если список сред для развертывания определяется строкой integration1, integration2.

Когда мы слушали ваши отзывы от Сообщество разработчиков, мы услышали, что вам нужна строковая split функция в выражениях шаблона YAML.

Теперь можно split выполнить итерацию each по строке ее подстроки.

variables:
  environments: integration1, integration2

jobs:
  - job: Deploy
    steps:
    - ${{ each env in split(variables.environments, ', ') }}:
      - script: ./deploy.sh -e ${{ env }}
      - script: ./runTest.sh -e ${{ env }}

Не синхронизировать теги при выборке репозитория Git

Задача извлечения использует --tags параметр для получения содержимого репозитория Git. Это приводит к тому, что сервер получает все теги, а также все объекты, на которые указывают эти теги. Это увеличивает время выполнения задачи в конвейере, особенно при наличии большого репозитория с несколькими тегами. Кроме того, задача оформления заказа синхронизирует теги даже при включении параметра неглубокой выборки, тем самым, возможно, не доверяя его назначению. Чтобы уменьшить объем данных, извлекаемых или извлекаемых из репозитория Git, мы добавили в задачу новый параметр для управления поведением синхронизации тегов. Этот параметр доступен как в классическом конвейере, так и в конвейере YAML.

Этим поведением можно управлять либо из ФАЙЛА YAML, либо из пользовательского интерфейса.

Чтобы отказаться от синхронизации тегов через YAML-файл, добавьте на fetchTags: false шаг оформления заказа. fetchTags Если параметр не указан, он будет таким же, как и при fetchTags: true использовании.

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

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

Если этот параметр указан как в YAML-файле, так и в пользовательском интерфейсе, приоритет будет иметь значение, указанное в файле YAML.

Для всех создаваемых конвейеров (YAML или классических) теги по-прежнему синхронизируются по умолчанию. Этот параметр не изменяет поведение существующих конвейеров. Теги по-прежнему будут синхронизированы в этих конвейерах, если вы явно не измените параметр, как описано выше.

Обновлено расписание отключения для образов Ubuntu 18.04

Azure Pipelines не рекомендует образ Ubuntu 18.04 () вubuntu-18.04 наших размещенных пулах. Этот образ будет снят с учета 1 декабря. Может начаться более длительное время в очереди.

Чтобы помочь вам лучше определить, какие конвейеры используют образ ubuntu-18.04, мы планируем отключения. Задания завершатся сбоем во время отключения.

  • Предупреждающие сообщения отображаются при выполнении конвейера с помощью образа ubuntu-18.04
  • Доступен скрипт для поиска конвейеров с помощью устаревших образов, включая ubuntu-18.04.
  • Мы запланируем короткие "отключения". Все запуски ubuntu-18.04 завершаются сбоем в течение периода отключения. Поэтому рекомендуется перенести конвейеры до отключения.

Расписание отключения (обновлено)

  • 3 октября, 12:00 UTC - 3 октября, 14:00 UTC
  • 18 октября, 14:00 UTC - 18 октября, 16:00 UTC
  • 15 ноября, 18:00 UTC - 15 ноября 20:00 UTC
  • 30 ноября, 20:00 UTC - 30 ноября, 22:00 UTC
  • 15 декабря, 20:00 UTC - 16 декабря 00:00 UTC
  • 5 января, 10.00 UTC — 5 января 14.00 UTC
  • 13 января, 12:00 UTC — 13 января 16.00 UTC
  • 18 января, 14.00 UTC - 18 января 18.00 UTC
  • 24 января, 16.00 UTC — 24 января 20.00 UTC
  • 1 февраля, 18.00 UTC - 1 февраля 22.00 UTC
  • 7 февраля, 16.00 UTC - 7 февраля, 22.00 UTC
  • 13 февраля, 14.00 UTC - 13 февраля, 22.00 UTC
  • 21 февраля, 10.00 UTC - 21 февраля, 22.00 UTC
  • 28 февраля, 10.00 UTC - 28 февраля, 22.00 UTC
  • 6 марта, 00.00 UTC - 7 марта, 00.00 UTC
  • 13 марта, 00.00 UTC - 14 марта, 00.00 UTC
  • 21 марта, 00.00 UTC - 22 марта, 00.00 UTC

Дальнейшие действия

Примечание

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

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

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

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

Внести предложение

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

Thanks,

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