检查 if 语句上的运行变量

问题描述 投票:0回答:1

我正在尝试检查“运行时设置”的变量的值。 enter image description here 我猜那是空值。 我的尝试:

variables: - name: MailPass ${{ if eq( variables['SendMail'], 'Yes' ) }}: value: "Si" ${{ else }}: value: "No"

SendMail 是运行时设置的变量(在 azure devops web 的运行对话框中),并且 MailPass 始终获得“否”值,无论我为 SendMail 变量设置什么值。

进行此比较的正确语法是什么? (我也尝试过

variables.SendMail

语法,但结果相同)

    

azure-pipelines azure-pipelines-yaml
1个回答
0
投票

当您在 Pipeline UI 中设置变量时,它将在运行时扩展。但是if表达式会在编译时进行判断。

在这种情况下,变量会将空值传递给 If 表达式。

作为解决方法,我们可以使用脚本根据变量值设置变量。

这是一个例子:

steps: - task: PowerShell@2 inputs: targetType: 'inline' script: | if( "$(SendMail)" -eq "yes" ) { echo "##vso[task.setvariable variable=MailPass;]Si" } else { echo "##vso[task.setvariable variable=MailPass;]No" } - powershell: echo $(MailPass)

	
© www.soinside.com 2019 - 2024. All rights reserved.