如何在 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,是不是打错了?