Когда вы используете шаблон в конвейере, вы используете только файл шаблона .yml, а не весь репозиторий, содержащий шаблон. Таким образом, по умолчанию никакие другие дополнительные файлы (кроме самого шаблона), которые могут существовать в хранилище шаблонов, не будут доступны при создании первичного конвейера.
Если вам нужен доступ к сценариям или другим файлам, которые существуют в вашем хранилище шаблонов, вам нужно будет использовать задачу извлечения и фактически извлекать хранилище шаблонов.
- checkout: git://MyProject/MyTemplateRepo
Одна вещь, о которой следует знать, если вы go пройдете путь проверки нескольких репозиториев, это то, что это приведет к структуре ваших $(Build.SourcesDirectory)
до изменение . На практике это может причинить боль, так как вам придется обновлять любые задачи, которые ожидают, что ваше основное местоположение хранилища находится в root из $(Build.SourcesDirectory)
.
Эта мутация $(Build.SourcesDirectory)
может не иметь большого значения для вас для новых трубопроводов. Это может обернуться болью, если у вас много конвейеров, в которых вы хотите использовать новый шаблон, для которых требуются вспомогательные сценарии.
Один из вариантов - упаковать вспомогательные сценарии шаблонов и опубликовать sh их во внутреннем фиде пакетов. Затем в вашем блоке шаблона выпустите требуемый скрипт как пакет. Я использовал эту стратегию ранее с шаблонами, которые нуждались в поддержке сценариев PowerShell. Мы транслируем эти сценарии и публикуем sh их как универсальные пакеты , а затем используем их на уровне шаблона.