DevOps Azure: вставьте локальный шаблон YAML в удаленный шаблон YAML - PullRequest
0 голосов
/ 04 октября 2019

Относительно раздела Вставка данной документации:

https://docs.microsoft.com/en-us/azure/devops/pipelines/process/templates?view=azure-devops#insertion

Можно ли ссылаться на локальный шаблон как на вставленный шаг (и) в удаленном шаблоне.

Например, я не могу заставить что-то подобное работать:

# File: jobs/build.yml (remotetemplates)

parameters:
  preBuild: []
  preTest: []
  preSign: []

jobs:
- job: Build
  pool:
    vmImage: 'vs2017-win2016'
  steps:
  - script: cred-scan
  - ${{ parameters.preBuild }}
  - task: msbuild@1
  - ${{ parameters.preTest }}
  - task: vstest@2
  - ${{ parameters.preSign }}
  - script: sign

# File: .vsts.ci.yml

jobs:
- template: jobs/build.yml@remotetemplates
  parameters:
    preBuild:
    - template: templates/steps/my-local-steps.yml

В результате получается что-то вроде: jobs/build.yml@remotetemplates: File templates/steps/my-local-steps.yml not found in repository <URL of remote repository>

Есть ли другой подход, который я могу использовать,позволил бы мне сделать это?

1 Ответ

0 голосов
/ 04 октября 2019

Можно ли ссылаться на локальный шаблон в качестве вставленного шага (ов) в удаленном шаблоне.

Извините, что нет, вы не можете.

Когда вы вызываете один файл yml из репозитория другого шаблона, все файлы шаблона должны быть из одного репозитория. Поскольку логика шаблонных репозиториев, вызываемых в других репозиториях, делает template repository полностью независимым , он хранит только шаблоны и используется другими репозиториями. Значение этого дизайна заключается в улучшении скорости повторного использования кода, называемой шаблонами. Другим преимуществом является регулирование шаблонов.

Таким образом, когда вы используете репозиторий шаблонов в YAML, шаблоны могут поступать только из этого репозитория шаблонов.

Есть ли другой подход, который я могу использовать, который позволил бы мне это сделать?

Есть два метода.

  • Сохранить это templates/steps/my-local-steps.yml файл в вашем хранилище шаблонов. Тогда не нужно добавлять другой код. Просто сценарий в порядке.

Если это так, в вашем файле .vsts.ci.yml есть некоторые ошибки.

resources:
  repositories:
    - repository: templates
      type: git
      name: {projectname}/{repos name}
jobs:
  - template: jobs/build.yml@templates
    parameters:
      preBuild:
      - template: {local steps which store at your template repository}.yml

Обратитесь к этому документу для справочного формата шаблона: https://docs.microsoft.com/en-us/azure/devops/pipelines/process/templates?view=azure-devops#using-other-repositories

  • Преобразуйте этот templates/steps/my-local-steps.yml в скрипт, добавьте чистый скрипт в эту вставку YAML.

Надеюсь, это поможет вам.

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