Azure DevOps - динамическая оценка имени спроса - PullRequest
1 голос
/ 04 марта 2020

Я ищу способ установить в Azure DevOps .yaml файл динамического c имя запроса.

В настоящее время у нас есть несколько автономных агентов сборки, которые выбираются Azure сервисами DevOps случайным образом, но иногда нам нужно выбрать одного агента, чтобы выяснить, почему он не работает (или для другого редкого события). Одним из способов является отключение всех других агентов и работа с этим желаемым (это влияет на весь наш CI / CD). Второй способ - добавление временного конвейера и перемещение нужного агента в следующий пул агентов (это стоит времени).

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

"DemandName" = "IsBuildAgent"

"DemandValue" = "Да"

У каждого агента будет установлена ​​эта переменная среды Муравей всегда будет позволять каждому агенту запускать конвейер, но если я установлю перед запуском конвейер ниже переменных.

"DemandName" = "AgentNumber"

"DemandValue" = "BuildAgentNr6"

enter image description here

Это переопределит библиотечные переменные, и только один агент сможет запустить этот конвейер.

pool:
  name: MyBuildAgents
  demands: $(DemandName) -equals $(DemandValue)

DemandValue корректно оценен, но DemandName не может быть установлен прямо сейчас. Можно ли добиться слегка измененным способом? Может быть, я должен изменить синтаксис? Или, может быть, я должен предложить это как новую функцию?

1 Ответ

1 голос
/ 05 марта 2020

Можно ли добиться слегка измененным способом? Может быть, я должен изменить синтаксис? Или, может быть, я должен предложить это как новую функцию?

Ваш синтаксис правильный.

Боюсь, что нет такого готового или слегка измененного способа достижения этого.

Так же, как вы тестируете, DemandName не может быть установлен правильно. Это потому, что левая часть уравнения обрабатывается как строка вместо значения в соответствии с грамматическими правилами. Это заставит Azure devops найти demand name в виде строки $(DemandName) вместо значения из $(DemandName), а затем искать имя требования на основе значения.

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

...