为什么我不能在 azure devops yaml 模板中的 if 条件中传递运行时变量
Why can I not pass a runtime variable in if condition in azure devops yaml template
我想我在 powershell 步骤中错误地调用了我的变量 os_name;每次我测试构建时,它都不会通过我的 if 语句。我想知道我的代码有什么问题。有没有人试过在类似这样的 azure devops 表达式中使用运行时变量?
- powershell: |
$os_name = 'linux'
echo "##vso[task.setvariable variable=os_name;]$os_name"
- ${{ if eq( variables.os_name , 'linux') }}:
- powershell: |
echo "variables.os_name = linux"
这应该适合你:
- task: PowerShell@2
displayName: set variable
inputs:
targetType: 'inline'
script: |
"##vso[task.setvariable variable=os_name;]linux"
- task: PowerShell@2
displayName: Linux case
inputs:
targetType: 'inline'
script: |
Write-Host "Linux"
condition: eq(variables.os_name, 'linux')
运行 对于 Linux:
运行 对于非 Linux:
我想我在 powershell 步骤中错误地调用了我的变量 os_name;每次我测试构建时,它都不会通过我的 if 语句。我想知道我的代码有什么问题。有没有人试过在类似这样的 azure devops 表达式中使用运行时变量?
- powershell: |
$os_name = 'linux'
echo "##vso[task.setvariable variable=os_name;]$os_name"
- ${{ if eq( variables.os_name , 'linux') }}:
- powershell: |
echo "variables.os_name = linux"
这应该适合你:
- task: PowerShell@2
displayName: set variable
inputs:
targetType: 'inline'
script: |
"##vso[task.setvariable variable=os_name;]linux"
- task: PowerShell@2
displayName: Linux case
inputs:
targetType: 'inline'
script: |
Write-Host "Linux"
condition: eq(variables.os_name, 'linux')
运行 对于 Linux:
运行 对于非 Linux: