gpt4 book ai didi

azure-pipelines - 模板条件,使用 Agent.OS | AGENT_操作系统

转载 作者:行者123 更新时间:2023-12-03 08:07:45 24 4
gpt4 key购买 nike

我想包含一个取决于变量 Agent.OS 的模板:

...
steps:
- ${{ if eq(variables['Agent.OS'], 'Linux') }}:
- template: /templates/prepare-tool.yaml

但这不起作用。我在步骤列表中没有看到此步骤。我也尝试过:

  - ${{ if eq(variables.AGENT_OS, 'Linux') }}:

结果相同。

也许我错了,但是:

The difference between runtime and compile time expression syntaxes is primarily what context is available. In a compile-time expression (${{ }}), you have access to parameters and statically defined variables. In a runtime expression ($[ ]), you have access to more variables but no parameters.

所以,我必须对这个变量使用 - $[ if eq(... ,它不是静态的,但它也不起作用:

Unexpected value '$[ if eq(variables.

我不知道如何使用这种变量。

根据我在 stackoverflow 上发现的内容(例如 12 ),这是不可能的。

最佳答案

Condition for template, using Agent.OS | AGENT_OS

是的,你说得对。没有现成的方法可以做到这一点。

由于变量 Agent.OS 的值是一个运行时变量,因此在运行作业之前我们无法使用它。

变量 ${{ if eq(variables['Agent.OS'], 'Linux') }} 是一个编译时变量。所以,因此,条件的判断结果始终是失败。

要解决此问题,您可以将条件添加到每个步骤的模板中,例如:

steps:
- script: echo Sometimes this happens!
condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux'))

关于azure-pipelines - 模板条件,使用 Agent.OS | AGENT_操作系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71664997/

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