#azure-devops #azure-pipelines #cicd
Вопрос:
Я пытаюсь установить значение var1, если режим не dev или переменная var2 имеет значение true
- name: var1
value: $[or(eq(variables['var2'], true), ne(variables['Mode'], 'dev'))]
Но когда я запускаю конвейер, я вижу, что переменная принимает значение false
var2:
Parsing expression: <or(eq(variables['var2'], true), ne(variables['Mode'], 'dev'))>
Evaluating: or(eq(variables['var2'], True), ne(variables['Mode'], 'dev'))
Expanded: or(eq('$[or(eq(variables[''var2''], true), ne(variables[''Mode''], ''dev''))]', True), ne('dev', 'dev'))
Result: 'False'
Что я сделал не так?
Комментарии:
1. Пробовали ли вы альтернативные методы переменного расширения? Такие как
variables.var2
Ответ №1:
Я проверил это:
variables:
- group: Some-secrets
- name: Mode
value: prod
- name: var2
value: true
- name: var1
value: $[or(eq(variables['var2'], true), ne(variables['Mode'], 'dev'))]
pool:
vmImage: ubuntu-latest
steps:
- script: env | sort
displayName: 'Display env variables'
- script: |
echo "$(var1)"
echo "$(var2)"
и это было оценено должным образом:
var1:
Parsing expression: <or(eq(variables['var2'], true), ne(variables['Mode'], 'dev'))>
Evaluating: or(eq(variables['var2'], True), ne(variables['Mode'], 'dev'))
Expanded: or(eq('true', True), ne(variables['Mode'], 'dev'))
Result: 'True'
Не могли бы вы поделиться своим полным конвейером?