Как использовать матричные переменные в рамках требований пула? - PullRequest
0 голосов
/ 06 ноября 2018

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

Файл yaml конвейера, относящийся к этой проблеме, является этой частью:

resources:
- repo: self

trigger: none

jobs:
- job: RunOnEveryAgent
  strategy:
    maxParallel: 3
    matrix:
      agent_1:
        agentName: Hosted Agent
      agent_2:
        agentName: Hosted VS2017 2
      agent_3:
        agentName: Hosted VS2017 3
  pool:
    name: Hosted VS2017
    demands:
    - msbuild
    - visualstudio
    - Agent.Name -equals $(agentName)

  steps:
  - (etc.)

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

[Ошибка 1] Не найден агент в пуле Hosted VS2017, который удовлетворяет указанным требованиям:

MSBuild

VisualStudio

Agent.Name -equals $ (agentName)

Agent.Version -gtVersion 2.141.1

Если я жестко задаю имя агента, оно работает и работает:

    demands:
    - msbuild
    - visualstudio
    - Agent.Name Hosted VS2017 3

Поддерживается ли использование этих переменных в требованиях пула? Или я должен использовать другую переменную или выражение?

...