Как расширить групповую переменную с помощью переменной пользовательского интерфейса?

У меня есть три конвейера сборки, по одному для каждой среды: Dev, QA, Prod. Я определил групповые переменные для каждой среды - group-Dev, group-QA, group-Prod. Каждый конвейер сборки имеет переменную TestEnvironment, установленную для соответствующей среды. Я пытаюсь расширить имя переменной группы с помощью переменной конвейера, но не могу заставить ее работать. Я предполагаю, что во время компиляции он не может оценить имя переменной группы, потому что он еще не знает значение переменной времени выполнения.

Я хочу примерно следующее:

variables:
  env: $(TestEnvironment)

stages:
- stage: Deploy
  jobs:
  - job: TestVariable
    variables:
      - group: 'group-${{variables.env}}'
    steps:
    - script: echo $(TestEnvironment), $(Database.Name), ${{variables.env}}
      displayName: 'Printing the variable'

Но единственный способ заставить его работать - это жестко запрограммировать переменную, например: env: QA. Я также попытался удалить раздел variables и установить group: 'group-$(TestEnvironment), но это тоже не сработало.


person Greg    schedule 28.03.2020    source источник


Ответы (1)


Сегодня это не поддерживается. Вам необходимо объявить группу переменных, которую вы хотите использовать в конвейере YAML. Пожалуйста, проверьте следующую проблему:

https://github.com/MicrosoftDocs/vsts-docs/issues/3702

person Cece Dong - MSFT    schedule 30.03.2020
comment
В ссылке были некоторые идеи, такие как использование выражений / скрипта, которые помогли мне обойти проблему. Не элегантно, но работает. - person Greg; 01.04.2020