#git #azure-devops #azure-pipelines
#git #azure-devops #azure-конвейеры
Вопрос:
У меня есть конвейер Azure DevOps, который я хочу запускать только тогда, когда определенный тег помещается в репозиторий, но по какой-то причине он всегда выполняется при каждой фиксации.
У моего azure-pipelines.yml
триггера такая настройка:
trigger:
tags:
include:
- mytag.*
Я также попытался исключить все ветви:
trigger:
branches:
exclude:
- "*"
tags:
include:
- mytag.*
Похоже, что не имеет значения, что trigger
установлено как, оно просто всегда выполняется при каждой фиксации.
Как мне заставить его запускаться только тогда, когда я нажимаю на тег?
Комментарии:
1. Установлен ли триггер для файла одинаковым во всех ветвях?
2. @Matt При настройке этого я делал все в
azure-pipeline
ветке. Таким образом, ни в какой другой ветке этого нетazure-pipelines.yml
.
Ответ №1:
Я попробовал то, что вы написали, и, похоже, это работает:
trigger:
branches:
exclude:
- '*'
tags:
include:
- v2.*
exclude:
- v2.0
pr:
branches:
include:
- refs/tags/v2.*
exclude:
- 'refs/tags/v2.0'
- '*'
Итак, для этой конфигурации, когда я делаю коммит, сборка не запускается. Сборка запускается только тогда, когда я нажимаю тег. Он фиксирует последнюю фиксацию, но это явно вызвано тегом.
Здесь, например, у вас есть другая сборка, которая была запущена Test commit
Комментарии:
1. Итак, я действительно не заметил, как там указано, что вызвало триггер сборки (как на вашем первом скриншоте). Оказывается, мои сборки на самом деле запускались с помощью запросов на извлечение. Я смог решить свою проблему, используя
pr
вместоtrigger
. Это происходило при каждом коммите, потому что у меня был открытый PR для этой ветки. Я нахожу чрезвычайно странным, что это функциональность по умолчанию.2. На самом деле обычно вам нужно повторять настройки для обоих
trigger
иpr
. Я отредактировал свой ответ, чтобы включить это. Если бы вы могли принять мой ответ или добавить свой собственный, это убрало бы эту проблему с радаров других пользователей SO, поскольку она будет помечена как решаемая. Я рад, что мой ответ помог вам выяснить основную причину.