В Azure хранилище шаблонов есть ли способ упомянуть хранилище для параметра filePath azure task 'pythonScript'? - PullRequest
1 голос
/ 14 февраля 2020

У меня есть хранилище шаблонов для конвейеров сборки, скажем 'azure -templates-repo', у меня есть шаблон задачи python, как упомянуто ниже:

steps:
- task: PythonScript@0
  inputs:
    scriptSource: 'filepath'
    scriptPath: 'python_test.yml' #this is located on repo: 'azure-templates-repo'

Мой вопрос о scriptPath, когда я использовать этот шаблон в конвейере сборки azure-pipeline.yml в хранилище my-great-app, azure пытается найти файл в my-great-app вместо того, где он действительно расположен azure-templates-repo.

Итак, есть ли способ упомянуть хранилище для параметра filePath azure задача 'pythonScript'?

1 Ответ

1 голос
/ 17 февраля 2020

Когда вы используете шаблон в конвейере, вы используете только файл шаблона .yml, а не весь репозиторий, содержащий шаблон. Таким образом, по умолчанию никакие другие дополнительные файлы (кроме самого шаблона), которые могут существовать в хранилище шаблонов, не будут доступны при создании первичного конвейера.

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

- checkout: git://MyProject/MyTemplateRepo

Одна вещь, о которой следует знать, если вы go пройдете путь проверки нескольких репозиториев, это то, что это приведет к структуре ваших $(Build.SourcesDirectory) до изменение . На практике это может причинить боль, так как вам придется обновлять любые задачи, которые ожидают, что ваше основное местоположение хранилища находится в root из $(Build.SourcesDirectory).

Эта мутация $(Build.SourcesDirectory) может не иметь большого значения для вас для новых трубопроводов. Это может обернуться болью, если у вас много конвейеров, в которых вы хотите использовать новый шаблон, для которых требуются вспомогательные сценарии.

Один из вариантов - упаковать вспомогательные сценарии шаблонов и опубликовать sh их во внутреннем фиде пакетов. Затем в вашем блоке шаблона выпустите требуемый скрипт как пакет. Я использовал эту стратегию ранее с шаблонами, которые нуждались в поддержке сценариев PowerShell. Мы транслируем эти сценарии и публикуем sh их как универсальные пакеты , а затем используем их на уровне шаблона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...