如何在 Azure DevOps 中为变量分配条件值?
How to assign conditional value to variable in Azure DevOps?
我正在尝试为 Azure DevOps 中的环境变量分配条件值,但它不起作用。
这是我的管道代码:
pr: none
trigger: none
stages:
- stage: Mail
variables:
- group: API_Key
jobs:
- job: Sending_Email
variables:
${{ if ne( variables['RecipientEmail'], '' ) }}:
EmailId: $(RecipientEmail)
${{ if eq( variables['RecipientEmail'], '' ) }}:
EmailId: $(DefaultEmailId)
steps:
- script: echo Mail id after condition is - $(EmailId)
这里我使用了 2 个环境变量“RecipientEmail”和“DefaultEmailId”,并在此基础上为新变量“EmailId”赋值。但它不起作用。在这两种情况下,它都会获取“DefaultEmailId”值。
例如:
DefaultEmailId: abc@example.com
收件人邮箱:xyz@example.com
Ideal Output: Mail id after condition is - xyz@example.com
Current Output: Mail id after condition is - abc@example.com
此外,我在定义“EmailId”变量条件时收到警告:“重复键”。
如果DefaultEmailId: abc@example.com
和RecipientEmail: xyz@example.com
设置在以下变量组中:API_Key
,我们会看到同样的问题。
经过研究,发现有一个关于它的建议票:https://developercommunity.visualstudio.com/t/azure-pipelines-yaml-set-variable-based-on-conditi/690246, you can vote and follow this ticket. You can also create a new suggestion ticket here。产品组将定期审查这些工单,并考虑将其作为路线图。
作为解决方法,您可以 set variables in scripts。
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
if ('$(RecipientEmail)' -eq '') {
Write-Host "##vso[task.setvariable variable=EmailId]$(DefaultEmailId)"
} else {
Write-Host "##vso[task.setvariable variable=EmailId]$(RecipientEmail)"
}
- script: |
echo Mail id after condition is - $(EmailId)
我正在尝试为 Azure DevOps 中的环境变量分配条件值,但它不起作用。 这是我的管道代码:
pr: none
trigger: none
stages:
- stage: Mail
variables:
- group: API_Key
jobs:
- job: Sending_Email
variables:
${{ if ne( variables['RecipientEmail'], '' ) }}:
EmailId: $(RecipientEmail)
${{ if eq( variables['RecipientEmail'], '' ) }}:
EmailId: $(DefaultEmailId)
steps:
- script: echo Mail id after condition is - $(EmailId)
这里我使用了 2 个环境变量“RecipientEmail”和“DefaultEmailId”,并在此基础上为新变量“EmailId”赋值。但它不起作用。在这两种情况下,它都会获取“DefaultEmailId”值。
例如: DefaultEmailId: abc@example.com 收件人邮箱:xyz@example.com
Ideal Output: Mail id after condition is - xyz@example.com
Current Output: Mail id after condition is - abc@example.com
此外,我在定义“EmailId”变量条件时收到警告:“重复键”。
如果DefaultEmailId: abc@example.com
和RecipientEmail: xyz@example.com
设置在以下变量组中:API_Key
,我们会看到同样的问题。
经过研究,发现有一个关于它的建议票:https://developercommunity.visualstudio.com/t/azure-pipelines-yaml-set-variable-based-on-conditi/690246, you can vote and follow this ticket. You can also create a new suggestion ticket here。产品组将定期审查这些工单,并考虑将其作为路线图。
作为解决方法,您可以 set variables in scripts。
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
if ('$(RecipientEmail)' -eq '') {
Write-Host "##vso[task.setvariable variable=EmailId]$(DefaultEmailId)"
} else {
Write-Host "##vso[task.setvariable variable=EmailId]$(RecipientEmail)"
}
- script: |
echo Mail id after condition is - $(EmailId)