Azure Проверка конвейеров «Требуется шаблон» не работает - PullRequest
2 голосов
/ 09 апреля 2020

Я пытаюсь получить проверку «Требуется шаблон», работающую на защищенном ресурсе (пул агентов, подключение к службе и т. Д. c) в моих Azure конвейерах.

У меня есть общий доступ настройка шаблона в общем репозитории (называемом «goldenimage- azure -pipelines-templates»), который определяется следующим образом:

# /templates/pipelines/master.yml
parameters:
- name: templates
  type: object
  default: []

stages:
- ${{ each template in parameters.templates }}:
  - ${{ each pair in template }}:
      ${{ if eq(pair.key, 'template') }}:
        ${{ template }}

Тогда у меня есть набор общих шаблонов в том же репозитории, на которые ссылаются с помощью файла-потребителя azure -pipelines.yml.

# /templates/stages/main.yml
stages:
  - stage: mainBuild
    jobs:
      - template: /templates/jobs/set-version.yml
      - template: /templates/jobs/build-image.yml
      - template: /templates/jobs/cleanup-build.yml
      - template: /templates/jobs/test-image.yml
      - template: /templates/jobs/cleanup-test.yml
      - template: /templates/jobs/update-configmap.yml
      - template: /templates/jobs/destroy-template.yml
      - template: /templates/jobs/cleanup.yml

Теперь в моем хранилище-потребителе файл azure -pipelines.yml определен следующим образом:

# azure-pipelines.yml
name: $(GitVersion.NuGetVersionV2).$(Build.BuildId)

trigger:
  branches:
    include:
      - master
  paths:
    exclude:
      - 'README.md'

resources:
  repositories:
    - repository: templates
      type: git
      name: goldenimage-azure-pipelines-templates
      ref: feature/WI443-baseTest

variables:
  - template: /templates/vars/main.yml@templates
  - template: /azure-pipelines/vars.yml


extends:
  template: templates/pipelines/master.yml@templates
  parameters:
    templates:
      - template: /templates/stages/main.yml

И затем в моем защищенном ресурсе (пул агентов или подключение к службе) я определил проверку следующим образом:

Required YAML template

Но при любой сборке работает, он ВСЕГДА сообщает, что провалил эту проверку.

Я попытался изменить синтаксис для Ref на несколько различных параметров, таких как:

  • feature / WI443-baseTest
  • refs / heads / feature / WI443-baseTest
  • refs / tags / e xtend (сделал этот тег только для этого теста)

Я также попытался добавить и удалить начальный sla sh на пути к шаблону, а также добавить @templates в конце из этого.

Кроме того, я добавил и удалил шаблон как для Service Connection, так и для пула агентов (в случае, если он будет работать с одним, но не с другим).

Независимо от того, что я делаю, он сообщает, что запуск не расширяет шаблон. Тем не менее, я вижу в конвейере задания из шаблона, поэтому он, очевидно, вытягивает его.

Build Jobs

Что я делаю не так?

1 Ответ

0 голосов
/ 10 апреля 2020

Независимо от того, что я делаю, он сообщает, что запуск не расширяет шаблон. Тем не менее, я вижу в конвейере задания из шаблона, поэтому он, очевидно, вытягивает его.

Прямая причина проблемы в том, что ваш конвейер не проходит проверку Require Template. Я думаю, что рабочие места отменены из-за этого.

Я обнаружил, что он мог бы хорошо работать, если бы все мои ресурсы были в ветке, формат которой был feature. и такая же проблема возникла, если я использовал ветку типа feature/xxx. Поэтому я думаю, что вторая ветвь формата не поддерживается хорошо в проверке Require Template.

enter image description here

Проверьте пи c выше, согласно моим тестам, проверка работает хорошо для DevBranch, но не Feature/Test. Я предлагаю вам опубликовать запрос функции здесь , чтобы сообщить об этой проблеме. Спасибо за вашу помощь, чтобы сделать наш продукт лучше:)

...