我遇到了一个问题,我试图在stage condition上执行以下逻辑
在纯文本中,它应该这样工作:
(branch is release AND var undefined) OR (branch is release AND var == sys)
在我的YAML中,我试图这样做:
# SYS
- stage: BuildSYS
condition: or(and(startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'), eq('[variables.Env]', '')), and(startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'), eq('[variables.Env]', 'SYS')))
jobs:
- job:
steps:
- script: echo Hi form SYS!在本例中,Env是我传递到管道中的一个变量。

当我触发时,我在release/*分支上,所以我不知道我做错了什么。
发布于 2021-07-01 04:49:37
在这里,'[variables.Env]'是问题所在。请把它回复到variables['Env']。
所以你的情况应该是:
condition: or(and(startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'), eq(variables['Env'], '')), and(startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'), eq(variables['Env'], 'SYS')))https://stackoverflow.com/questions/68197421
复制相似问题