如何在 Azure Devops 的变量块中使用 'or' 条件?
How can I use 'or' condition in variables block in AzureDevops?
如果模式不是 dev 或变量 var2 的值为 true,我正在尝试设置 var1 的值
- 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'
我做错了什么?
我测试了这个:
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'
你能分享你的完整流程吗?
这是因为你在var2
中计算了var2
同一个变量,应该是var1,是不是打错了?
如果模式不是 dev 或变量 var2 的值为 true,我正在尝试设置 var1 的值
- 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'
我做错了什么?
我测试了这个:
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'
你能分享你的完整流程吗?
这是因为你在var2
中计算了var2
同一个变量,应该是var1,是不是打错了?