В конвейерах шаблонов нельзя размещать какие-либо операторы триггера, такие как trigger: none
, как указано в Microsoft docs, чтобы отключить триггер ci, поэтому мне интересно, как вы предотвращаете выполнение этих конвейеров каждый раз, когда вы обновляете их или любой другой файл yaml в та же ветка?
Azure DevOps: как отключить триггер CI в конвейере шаблона YAML?
Ответы (3)
Определение yaml конвейера теперь поддерживает отключение всех триггеров с помощью
trigger: none
Таким образом, в конечном итоге в конвейере шаблона вы не можете указать что-то вроде trigger: none
(для установки только ручного запуска), и вы не можете указать этапы или задания, разрешены только шаги (поэтому вы не можете определить какое-либо условие для предотвращения выполнения конвейера на на работе или на сцене).
У вас есть возможность отключить триггер CI, перейдя в раздел триггеров для конвейера шаблона и выбрав следующее:
Мне не очень нравится этот вариант, потому что он означает наличие конфигурации конвейера, которая не отражена в определении конвейера yaml, но я не нашел другого способа отключить запуск конвейера шаблона каждый раз, когда что-то (включая сам конвейер) обновляется в его ветвь.
trigger: none
, они постоянно запускались при каждом обновлении файла.
- person whatever; 09.03.2021
Если вы хотите обновить свой шаблон, не затрагивая конвейеры, использующие этот шаблон, внесите изменения в отдельную ветку и объедините его с master (или с тем, что вы используете), как только вы будете уверены, что у вас есть то, что вы хотите.
То же самое применимо, если вы используете шаблон из другого репо:
# Repo: Contoso/WindowsProduct
# File: azure-pipelines.yml
resources:
repositories:
- repository: templates
type: github
name: Contoso/BuildTemplates
ref: refs/tags/v1.0 # optional ref to pin to
jobs:
- template: common.yml@templates # Template reference
parameters:
vmImage: 'vs2017-win2016'
По умолчанию вы используете шаблон из своей основной ветки, но вы можете указать любую ветку по своему желанию. Таким образом, вы также можете проверить свои изменения на ограниченных конвейерах, поскольку вам нужно указать прямо на ветку, в которой вы изменили свой шаблон.
Допустим, у вас есть ветвление:
master
|_ feature/add-extra-step
И вы вносите изменения в шаблон, но на feature/add-extra-step
, добавляя дополнительный шаг.
Теперь, когда вы запускаете конвейер, который использует этот шаблон:
- триггер идет с
master
- ваш дополнительный шаг в шаблоне не будет запущен - триггер идет с
feature/add-extra-step
- ваш дополнительный шаг будет выполнен
Я внес изменения в шаблон в ветке feature/extra-step
:
И это изменение недоступно, когда я запускаю конвейер (даже тот же конвейер) на мастере:
Если вы, например, не хотите запускать сборку ci, вносящую изменения в шаблон, просьба зафиксировать эти изменения с помощью фразы [skip ci]
в сообщении git. Отметьте здесь для получения более подробной информации.
[skip ci]
в комментарий git.
- person Krzysztof Madej; 11.12.2020