yaml 管道中的条件,如 "eq" 和 "ne" 不起作用
Conditions in yaml pipeline like "eq" and "ne" is not working
我创建了一个管道构建变量 "svctag" 并将其值分配给空白(空字符串)。现在尝试在 yaml 文件中的作业中执行以下脚本。每次打印 "svctag is not blank"。不确定我做错了什么。
请帮忙。
- ${{ if eq('$(svctag)', '') }}:
- script: echo 'svctag is blank'
- ${{ if ne('$(svctag)', '') }}:
- script: echo 'svctag is not blank'
据我所知,此格式仅适用于 YAML 模板。现在,问题是您使用的名为 method 的变量不正确。
您应该使用格式 variables['svctag']
而不是 $(svctag)
来访问之前在使用 YAML 时声明的变量。
因此,您应该将脚本更改为
- ${{ if eq(variables['svctag'], '') }}:
- script: echo it is true
- ${{ if ne(variables['svctag'], '') }}:
- script: echo it is false
这是我这边的输出。
另一个解决方案是在 parameters
下定义 svctag
:
parameters:
svctag: ''
然后使用带参数的步骤:
steps:
- ${{ if eq(parameters.svctag, '') }}:
- script: echo it is true
- ${{ if ne(parameters.svctag, '') }}:
- script: echo it is false
注意:请使用parameters.svctag
.
因此,您应该将脚本更改为
- ${{ if eq(variables['svctag'], '') }}:
- script: echo it is true
- ${{ if ne(variables['svctag'], '') }}:
- script: echo it is false
我创建了一个管道构建变量 "svctag" 并将其值分配给空白(空字符串)。现在尝试在 yaml 文件中的作业中执行以下脚本。每次打印 "svctag is not blank"。不确定我做错了什么。 请帮忙。
- ${{ if eq('$(svctag)', '') }}:
- script: echo 'svctag is blank'
- ${{ if ne('$(svctag)', '') }}:
- script: echo 'svctag is not blank'
据我所知,此格式仅适用于 YAML 模板。现在,问题是您使用的名为 method 的变量不正确。
您应该使用格式 variables['svctag']
而不是 $(svctag)
来访问之前在使用 YAML 时声明的变量。
因此,您应该将脚本更改为
- ${{ if eq(variables['svctag'], '') }}:
- script: echo it is true
- ${{ if ne(variables['svctag'], '') }}:
- script: echo it is false
这是我这边的输出。
另一个解决方案是在 parameters
下定义 svctag
:
parameters:
svctag: ''
然后使用带参数的步骤:
steps:
- ${{ if eq(parameters.svctag, '') }}:
- script: echo it is true
- ${{ if ne(parameters.svctag, '') }}:
- script: echo it is false
注意:请使用parameters.svctag
.
因此,您应该将脚本更改为
- ${{ if eq(variables['svctag'], '') }}:
- script: echo it is true
- ${{ if ne(variables['svctag'], '') }}:
- script: echo it is false