Указание событий для активации конвейеров

Сервисы Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Триггер конвейера определяет, когда запускать конвейер. Триггер можно настроить для запуска конвейера на основе расписания или в ответ на событие, например создание запроса на вытягивание. Azure Pipelines поддерживает следующие типы триггеров:

  • Триггеры непрерывной интеграции (триггеры CI) запускают конвейер при отправке кода в ветвь.
  • Триггеры pull request (PR-триггеры) запускают пайплайн, когда вы создаёте PR или отправляете изменения в исходную ветвь открытого PR. Репозитории GitHub поддерживают триггеры по комментариям, которые запускают конвейер при добавлении комментария к открытому pull request.
  • Запланированные триггеры запускают конвейер в предопределенном расписании.
  • Триггеры завершения конвейера запускают конвейер при завершении другого конвейера.

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

Триггеры CI

Ci триггеры запускают конвейер при отправке в ветвь, которая соответствует критериям, определенным триггером. Используйте ключевое trigger слово для настройки триггера CI. Например, чтобы запустить конвейер при отправке main в ветвь, укажите следующий триггер.

trigger:
- main

Если вы явно не настраиваете конвейер, то для всех ветвей по умолчанию включены триггеры CI, если только не задан параметр Disable implied CI trigger или настройки интерфейса переопределяют триггер YAML.

Если вы явно не настраиваете конвейер, то для всех ветвей по умолчанию включены триггеры CI, если только не задан параметр Disable implied CI trigger или настройки интерфейса переопределяют триггер YAML.

Примечание.

Отключить неявный триггер CI доступно только в Azure DevOps Server 2022.2 и более поздних версиях. В Azure DevOps Server 2022 и 2022.1 триггеры CI включены по умолчанию, если они не настроены явным образом.

Чтобы отключить триггеры CI в конвейере, используйте следующий синтаксис.

trigger: none

Конвейеры YAML поддерживают триггеры CI для следующих типов репозитория. Дополнительные сведения об использовании триггеров CI с определенным типом репозитория см. в следующих статьях.

Сведения о полном синтаксисе триггера YAML и параметрах, доступных для триггеров CI, см. в определении триггеров.

Important

Пути в Git чувствительны к регистру, включая фильтры путей для триггеров CI и PR.

Триггеры PR

Триггеры запроса на включение изменений (PR) запускают конвейер каждый раз, когда вы открываете запрос на включение изменений или отправляете изменения в исходную ветвь этого запроса. Используйте ключевое pr слово для настройки триггера PR. Например, чтобы запустить конвейер при вызове PR в main ветвь, укажите следующий триггер.

pr:
- main

Если вы явно не настраиваете триггеры PR в конвейере, они включены по умолчанию, если параметры пользовательского интерфейса не переопределяют триггер YAML. Запросы на вытягивание в любую ветвь активируют запуск конвейера. Чтобы отключить триггеры PR в конвейере, используйте следующий синтаксис.

pr: none

Триггеры PR YAML поддерживаются для GitHub и Bitbucket Cloud. Дополнительные сведения об использовании триггеров PR с этими типами репозиториев см. в разделе ПР триггеров в GitHub и PR триггеров в Bitbucket Cloud. Сведения о полном синтаксисе триггера PR YAML см. в определении pr.

Azure Repos Git использует политики веток для реализации триггеров PR. Дополнительные сведения см. в разделе ПР триггеров в Azure Repos Git.

Триггеры комментариев

Триггеры комментариев настраивают запуск конвейера, когда участники оставляют комментарий к pull request, содержащий команду для pull request, например /azp run. Триггеры комментариев поддерживаются только для GitHub репозиториев. Дополнительные сведения см. в статье Триггеры комментариев репозитория GitHub.

Запланированные триггеры

Запланированные триггеры запускают конвейер в предопределенном расписании. Все типы репозитория, поддерживающие конвейеры YAML , поддерживают запланированные триггеры в конвейерах YAML. Эти типы репозиториев включают Azure Repos Git, GitHub, GitHub Enterprise Server и Bitbucket Cloud.

Чтобы определить запланированный триггер в YAML, используйте schedules ключевое слово и определите расписание с помощью синтаксиса cron. В следующем примере настраивается расписание, которое выполняется каждый день в полночь.

# YAML file in the main branch
schedules:
- cron: '0 0 * * *'
  displayName: Daily midnight build
  branches:
    include:
    - main

Дополнительные сведения и примеры см. в разделе "Запланированные триггеры", "Определения расписаний" и "schedules.cron".

Триггеры завершения конвейера

Триггеры конвейера в конвейерах YAML и триггеры завершения сборки в классических конвейерах сборки позволяют активировать один конвейер после завершения другого.

Настройте триггер ресурса конвейера в конвейере, чтобы запустить конвейер после завершения выполнения исходного конвейера.

resources:
  pipelines:
  - pipeline: sourcePipelineResource # Label for this pipeline resource; used when referring to it elsewhere in the pipeline.
    source: source-pipeline # The name of the pipeline referenced by this pipeline resource.
    project: FabrikamProject # Required only if the source pipeline is in another project
    trigger: true # Run this pipeline when any run of source-pipeline completes

В конвейер можно добавить несколько ресурсов. Триггер можно настроить для запуска при завершении любой версии исходного конвейера или ограничить его определенными ветвями.

Дополнительные сведения и примеры см. в разделе "Триггеры завершения конвейера".

Полный синтаксис и параметры триггера см. в определении resources.pipelines.pipeline.

Рекомендации по ветвям для триггеров в конвейерах YAML

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

Тип триггера Версия YAML конвейера
Триггеры CI (trigger) Используется версия конвейера в запушенной ветке.
Триггеры PR (pr) Используется версия конвейера в исходной ветке запроса на слияние.
Триггеры комментариев к запросам на вытягивание GitHub Используется версия конвейера в исходной ветке запроса на слияние.
Запланированные триггеры См. раздел "Вопросы, касающиеся ветвей для запланированных триггеров".
Триггеры завершения конвейера Раздел «Рекомендации по триггерам завершения конвейера».

Триггеры ресурсов для конвейеров YAML

Триггеры ресурсов репозитория позволяют запускать конвейер при изменении земли в репозитории, определенном как repositories ресурс. Настройте фильтры в стиле trigger CI для ресурса таким образом, чтобы фиксации или PR в внешних Azure Repos Git, GitHub, GitHub Enterprise или Bitbucket Cloud репозиторий может начать запуск текущего конвейера.

Azure Pipelines поддерживает аналогичные триггеры на основе событий в других типах ресурсов:

  • pipelines: при завершении вышестоящего конвейера CI (с необязательными ветвями, тегами и фильтрами этапов)
  • builds: на новых артефактах из внешней системы CI, такой как Jenkins
  • containers: на новых тегах изображений в Реестр контейнеров Azure
  • packages: в новых версиях пакетов NuGet или npm GitHub
  • webhooks: при произвольных событиях из внешних служб, таких как GitHub, Nexus или Artifactory через подключение к входящей службе веб-перехватчика

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

Общие триггеры на основе вебхуков для конвейеров YAML

Поддержка триггера веб-перехватчика в конвейерах YAML позволяет подписываться на события из любой внешней службы (например, GitHub, GitHub Enterprise, Nexus или Artifactory) через веб-перехватчики и автоматически активировать конвейеры. Эта функция расширяет автоматические триггеры, помимо встроенных ресурсов, таких как конвейеры, контейнеры, сборки и пакеты. Вы можете интегрировать автоматизацию конвейеров с любой внешней службой.

Чтобы использовать эту функцию, определите webhook ресурс resources.webhooks в конвейере YAML и укажите ему входящее подключение службы веб-перехватчика, которое подписывается на событие. Вы можете добавить фильтры по полезным данным JSON для точной настройки при каждом запуске конвейера и получить доступ к значениям полезных данных в качестве переменных в заданиях.

resources:
  webhooks:
    - webhook: MyWebhookTrigger          ### Webhook alias
      connection: MyWebhookConnection    ### Incoming webhook service connection
      filters:
        - path: repositoryName      ### JSON path in the payload
          value: maven-releases     ### Expected value in the path provided
        - path: action
          value: CREATED
steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    ### JSON payload data is available in the form of ${{ parameters.<WebhookAlias>.<JSONPath>}}
    script: |
      Write-Host ${{ parameters.MyWebhookTrigger.repositoryName}}
      Write-Host ${{ parameters.MyWebhookTrigger.component.group}}

Дополнительные сведения см. в разделе "Универсальные триггеры на основе веб-перехватчика" для конвейеров YAML и определения resources.webhooks.webhook.

Классические конвейеры выпуска

Триггеры непрерывного развертывания помогают запускать классические выпуски после завершения классической сборки или конвейера YAML.

Триггеры запланированного выпуска позволяют запускать конвейер выпуска в соответствии с расписанием.

Триггеры релизов для pull request используются для непосредственного развертывания pull request с помощью классических выпусков.

Триггеры этапов в классическом выпуске используются для настройки активации каждого этапа в классическом выпуске.