Публикация нейтрального состояния в GitHub при выполнении проверки с правилом исключения пути
С помощью этого обновления мы включили несколько обновлений в Azure Pipelines. В конвейерах YAML мы устанавливаем запрет доступа ко всем конвейерам по умолчанию для защищенных ресурсов. Кроме того, Azure Pipelines опубликует нейтральное состояние обратно в GitHub, когда решит не запускать проверочный сборок из-за правила исключения пути.
Дополнительные сведения см. в следующих описаниях функций.
Примечание
28 сентября 2021 г. Axosoft уведомила Azure DevOps об уязвимости в зависимости от своего популярного клиента Git GUI — GitKraken. Дополнительные сведения см. в записи блога .
Azure Pipelines
- Публикация нейтрального состояния в GitHub при пропуске сборки
- Доступ ко всем конвейерам отключен по умолчанию в защищенных ресурсах
- Внедрение задачи до или после указанной целевой задачи с помощью декоратора
- Объявление о прекращении поддержки размещенных образов Windows 2016
- Объявление об устаревании размещенных образов macOS 10.14
Azure Pipelines
Публикация нейтрального состояния в GitHub при пропуске сборки
С помощью Azure Pipelines вы всегда можете проверить запрос на вытягивание в GitHub. Вы также можете указать , какие пути в репозитории GitHub должны активировать конвейер. Например, следующий конвейер активируется при отправке code
изменения в ветвь main
, но не активируется при отправке изменения в папку docs
.
trigger: none
pr:
branches:
include:
- main
paths:
include:
- code
exclude:
- docs
pool:
vmImage: ubuntu-latest
steps:
- script: echo Hello, world!
displayName: 'Run a one-line script'
После завершения конвейера Azure Pipelines опубликует состояние обратно в GitHub. Если для репозитория GitHub действуют политики защиты ветвей, то состояние, размещенное Azure Pipelines, определяет, будет ли запрос на вытягивание объединен.
В приведенном выше примере, если вы внесли изменения в docs
, GitHub в настоящее время блокирует запрос на вытягивание, ожидающий возврата состояния Azure Pipelines. Однако Azure Pipelines не выполняет проверивную сборку, так как этот путь исключается из триггера, что делает невозможным выполнение запроса на вытягивание. Клиенты, настраивающие триггеры исключения путей или несколько конвейеров для одного репозитория GitHub, часто сталкиваются с этой проблемой.
В дальнейшем Azure Pipelines опубликует neutral
состояние обратно в GitHub, когда решит не запускать проверочный сборок из-за правила исключения пути. Это предоставит GitHub четкое направление, указывающее, что Azure Pipelines завершил обработку.
Представление беседы:
Проверьте сведения:
Доступ ко всем конвейерам отключен по умолчанию в защищенных ресурсах
Конвейер YAML может полагаться на один или несколько защищенных ресурсов. Подключения служб, пулы агентов, группы переменных, защищенные файлы и репозитории — это примеры защищенных ресурсов, так как администратор такого ресурса может контролировать, какие конвейеры имеют доступ к такому ресурсу. Администраторы используют панель параметров безопасности ресурса для включения или отключения конвейеров.
При создании одного из этих ресурсов интерфейс по умолчанию предоставляет доступ ко всем конвейерам, если вы не отключите его явным образом. Чтобы улучшить общее состояние безопасности, по умолчанию устанавливается запрет доступа ко всем конвейерам. Чтобы предоставить доступ ко всем конвейерам, просто включите переключатель в процессе создания или после создания ресурса.
Внедрение задачи до или после указанной целевой задачи с помощью декоратора
Декораторы — это способ автоматического внедрения задач в конвейер. Они обычно используются центральными командами в организации для автоматического выполнения необходимых процедур соответствия. Декораторы можно использовать с классическими сборками, классическими выпусками или конвейерами YAML.
В настоящее время задача может быть внедрена с помощью декоратора в начале каждого задания, в конце каждого задания или сразу после проверка задачи. Чтобы управлять этим, укажите target
в разделе вклад расширения декоратора, как описано здесь. Теперь мы расширяем список целевых объектов, включив в него следующее:
ms.azure-pipelines-agent-job.pre-task-tasks
ms.azure-pipelines-agent-job.post-task-tasks
ms.azure-release-pipelines-agent-job.pre-task-tasks
ms.azure-release-pipelines-agent-job.post-task-tasks
Ниже приведен пример декоратора, который внедряет задачу перед каждым экземпляром PublishPipelineArtifacts
задачи в конвейер.
{
"manifestVersion": 1,
"contributions": [
{
"id": "my-required-task",
"type": "ms.azure-pipelines.pipeline-decorator",
"targets": [
"ms.azure-pipelines-agent-job.pre-task-tasks"
],
"properties": {
"template": "my-decorator.yml",
"targettask": "ECDC45F6-832D-4AD9-B52B-EE49E94659BE"
}
}
],
"files": [
{
"path": "my-decorator.yml",
"addressable": true,
"contentType": "text/plain"
}
]
}
Объявление о прекращении поддержки размещенных образов Windows 2016
Недавно мы сделали Windows 2022 доступной в качестве размещенного образа. С предстоящим прекращением основной поддержки Windows 2016 в январе 2022 г. мы устареем vs2017-win2016
образы, начиная с 15 ноября. Полное прекращение использования этого образа запланировано на март 2022 г. Так как это часто используемый образ, мы хотели бы предоставить вам достаточно уведомлений и времени для внесения необходимых изменений в конвейеры.
Ознакомьтесь с нашей записью блога , в котором подробно описано, как найти все проекты и конвейеры с помощью размещенного образа Windows 2016, а также инструкции по переходу на более новые версии.
Объявление об устаревании размещенных образов macOS 10.14
Недавно мы сделали macOS-11 доступным в качестве размещенного образа. В результате мы устареем образ macOS-10.14 в декабре 2021 г. Сборки, использующие этот образ, завершатся сбоем после того, как он станет устаревшим. Дополнительные сведения об устаревании различных изображений можно найти в нашей записи блога.
Дальнейшие действия
Примечание
Эти функции будут развернуты в течение следующих двух-трех недель.
Перейдите в Azure DevOps и посмотрите.
Отправка отзыва
Мы хотели бы услышать, что вы думаете об этих функциях. Используйте меню справки, чтобы сообщить о проблеме или предоставить предложение.
Вы также можете получить советы и ответы на свои вопросы от сообщества на Сайте Stack Overflow.
Thanks,
Виджай Махираджу