#azure-devops #azure-pipelines #azure-pipelines-build-task
#azure-devops #azure-конвейеры #azure-pipelines-build-task
Вопрос:
У меня есть проект в Azure DevOps, содержащий несколько разветвлений одного и того же основного репозитория. Я создал конвейер сборки для этого репозитория, который, к сожалению, не может быть повторно использован для нынешних форков, поскольку конвейер может быть настроен только для одного репозитория.
Это решение не идеально, поскольку приводит к созданию нескольких идентичных конвейеров, по одному для каждого форка, и обслуживание всех из них может быть затруднено.
Есть ли способ использовать один конвейер для нескольких репозиториев?
Ответ №1:
вы можете создать файл шаблона и ссылаться на этот файл из каждого конвейера, таким образом, вы можете редактировать один файл, и каждый конвейер будет меняться.
пример, как повторно использовать файл шага из другого репозитория
resources:
repositories:
- repository: DevOps
type: git
name: DevOps
trigger: none
jobs:
- template: vsts/yaml/build.yaml@DevOps
parameters:
solutionName: xxx
registryName: yyy
Вы можете ознакомиться с официальными документами для получения дополнительных примеров
https://docs.microsoft.com/en-us/azure/devops/pipelines/process/templates?view=azure-devops
Комментарии:
1. Это решает проблему дублирования конфигурации в каждом репозитории, что хорошо, но, похоже, мне все еще нужно создавать конвейер для каждой вилки. Это верно?
2. да, к сожалению, вы можете настроить таргетинг на одну сборку для нескольких репозиториев
3. @4c74356b41 где я могу сослаться на файл шаблона? Я не нахожу такой опции.
Ответ №2:
Это включено в дорожную карту на третий квартал 2019 года:
Поддержка нескольких репозиториев для конвейеров YAML https://dev.azure.com/mseng/AzureDevOpsRoadmap/_workitems/edit/1454026
Обновление: теперь это реализовано: https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/multi-repo-checkout?view=azure-devops#triggers
«Триггеры
Вы можете запустить конвейер, когда обновление передается в собственный репозиторий или в любой из репозиториев, объявленных как ресурсы «.
Комментарии:
1. Я считаю, что рабочий элемент касается триггеров во внешних репозиториях, а не фактического включения шаблонов из внешних репозиториев, которые уже есть в общедоступных документах — docs.microsoft.com/en-us/azure/devops/pipelines/process /…
2. @alv, боюсь, я не понимаю вашего комментария. Мой ответ (рабочий элемент, запланированный MS) — это именно то, чего хочет исходный плакат (и я тоже): повторно использовать один и тот же конвейер сборки для разных репозиториев с помощью триггеров CI или триггеров PR. Использование шаблонов — это незавершенное решение, которое по-прежнему требует конвейера для каждого репозитория, что может быть кошмаром для поддержки (например, изменение имени шаблона или добавление параметра)
3. Сейчас выполняется Q4.
4. Каждый ли это сделал?