Поделиться через


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

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

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

Azure Boards

Azure Pipelines (система конвейеров Azure)

Azure Boards

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

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

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

Исправления ошибок в Центре досок

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

Azure Pipelines (система конвейеров Azure)

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

Ранее пользовательский интерфейс Pipelines показывал последнее сообщение коммита при отображении запуска конвейера.

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

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

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

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

Пример выполнения pipeline с последним сообщением коммита

Используемые ресурсы и параметры шаблона в 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

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

Это поведение можно контролировать из YAML-файла или из пользовательского интерфейса.

Чтобы отказаться от синхронизации тегов с помощью YAML-файла, добавьте fetchTags: false на этап checkout. Если параметр 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.

Спасибо,

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