San*_*tta 5 yaml if-statement build equals azure-pipelines
我创建了一个管道构建变量“svctag”并将其值指定为空白(空字符串)。现在尝试在 yaml 文件中的作业中执行以下脚本。每次打印“svctag 不为空”。不确定我做错了什么。请帮忙。
- ${{ if eq('$(svctag)', '') }}:
- script: echo 'svctag is blank'
- ${{ if ne('$(svctag)', '') }}:
- script: echo 'svctag is not blank'
Run Code Online (Sandbox Code Playgroud)
Mer*_*SFT 10
据我所知,这种格式仅适用于 YAML 模板。现在,问题是您使用的名为方法的变量不正确。
您应该使用该格式,variables['svctag']而不是$(svctag)访问之前使用 YAML 时声明的变量。
所以,你应该将你的脚本更改为
- ${{ if eq(variables['svctag'], '') }}:
- script: echo it is true
- ${{ if ne(variables['svctag'], '') }}:
- script: echo it is false
Run Code Online (Sandbox Code Playgroud)
这是我这边的输出。
另一个解决方案定义svctag如下parameters:
parameters:
svctag: ''
Run Code Online (Sandbox Code Playgroud)
然后使用步骤参数:
steps:
- ${{ if eq(parameters.svctag, '') }}:
- script: echo it is true
- ${{ if ne(parameters.svctag, '') }}:
- script: echo it is false
Run Code Online (Sandbox Code Playgroud)
注意:请使用parameters.svctag.