Я ожидаю, что он отобразит ab c, но вместо этого ab c заменяется ничем - переменными. Кажется, что среда не определена.
Согласно этого документа :
Время выполнения происходит после расширения шаблона. Переменные шаблона обрабатываются во время компиляции и заменяются до запуска среды выполнения. Переменные шаблона молча объединяются с пустыми строками, когда значение замены не найдено.
Так что в вашем случае echo $(test)
выведите только пустую строку. Потому что переменные очереди используются во время выполнения. Для этого вы можете рассмотреть возможность использования макроса или выражения времени выполнения для времени выполнения. И test: $(Environment)
, и test: $[variables.Environment]
хорошо работают на моей стороне.
Позже я хочу загрузить другую группу переменных в зависимости от переменной Environment, поэтому я не отображаю $ (Environment) прямо в сценарии. Это просто упрощенный пример.
Как я знаю, связывание различных групп переменных в зависимости от переменной Dynami c Environment
пока не поддерживается, вот одно обсуждение об этом топи c. И это один хороший обходной путь в этом сценарии.
В настоящее время Azure Devops Service внедряет новую функцию параметры времени выполнения , я думаю, что она может удовлетворить большинство ваши требования. Это может быть лучшим выбором для вас, используйте параметры времени выполнения вместо неподдерживаемой переменной Dynami c Environment
.
Мой простой тест об этой опции:
1.Содержание в yaml:
parameters:
- name: group
displayName: Group Name
type: string
default: TestGroup
values:
- TestGroup
- Group2
- Group3
- Group4
variables:
- group: ${{ parameters.group }}
steps:
- script: |
echo $(Name)
displayName: 'Show group name'
2.Моя группа переменных TestGroup:
3.Нажмите конвейер запуска:
4. Трубопровод работает хорошо и отображает переменную, определенную в группе переменных:
Надеюсь, это поможет:)