gpt4 book ai didi

azure-devops - Azure YAML 管道条件插入不起作用

转载 作者:行者123 更新时间:2023-12-04 01:08:55 26 4
gpt4 key购买 nike

考虑以下管道片段,这是模板的一部分。

- task: Bash@3
inputs:
targetType: 'inline'
script: |
echo "##vso[task.setvariable variable=AppType;]WebJob"
echo "##[debug] AppType set to WebJob"

# This works, using the task condition
- task: DotNetCoreCLI@2
condition: eq(variables['AppType'], 'WebJob')
displayName: 'net publish for WebJob'
inputs:
command: 'publish'

# This doesn't work, using the conditional insertion, index syntax
- ${{ if eq(variables['AppType'], 'WebJob') }}:
- task: DotNetCoreCLI@2
displayName: 'net publish for WebJob'
inputs:
command: 'publish'

# This also doesn't work, using the conditional insertion, property dereference syntax
- ${{ if eq(variables.AppType, 'WebJob') }}:
- task: DotNetCoreCLI@2
displayName: 'net publish for WebJob'
inputs:
command: 'publish'
为什么任务条件有效但条件插入无效?
第二个我没有收到任何错误,任务不存在,就像不满足 if 条件一样。

最佳答案

Azure YAML pipelines conditional insertion doesn't work


我们知道,语法 ${{}}对于编译时间:
Expressions
# Note the syntax ${{}} for compile time and $[] for runtime expressions.
所以,当我们执行管道时,条件插入 ${{ if eq(variables['AppType'], 'WebJob') }}已经评估过了,但是, Bash任务尚未运行,值 AppType将永远是 null .这就是条件插入不起作用的原因。
为了解决这个问题,我们可以直接定义变量:
 variables:
AppType: WebJob
或者我们可以定义运行时参数:
parameters:
- name: AppType
displayName: AppType
default: WebJob

关于azure-devops - Azure YAML 管道条件插入不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65452077/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com