由于条件批准在 azure yaml 管道中不起作用,我一直在尝试在部署阶段使用 2 环境的解决方法,如 yaml 所示。使用作业中的条件和变量我想检查是否需要批准,但是当我运行管道时,我看到它仍在请求批准,即使需要批准的部署作业的条件不满足。尽管需要批准的作业按预期跳过,但发布批准。我不明白为什么它要求批准。
- 在评估工作条件之前,是否首先对某个阶段执行审批?
- 我错过了yaml中的某些内容吗?
trigger:
- none
variables:
- group: pipelinevariables
# Agent VM image name
- name: vmImageName
value: 'ubuntu-latest'
stages:
- stage: Deploy
displayName: Deploy stage
jobs:
- deployment: DeployWebWithoutApprval
displayName: deploy Web App without approval
condition: and(succeeded(),ne(variables.DEV_APPROVAL_REQUIRED,'true'))
pool:
vmImage: $(vmImageName)
# creates an environment if it doesn't exist
environment: 'app-dev'
strategy:
runOnce:
deploy:
steps:
- script: echo No approval
- deployment: DeployWebWithApprval
displayName: deploy Web App with approval
dependsOn: DeployWebWithoutApprval
condition: and(eq(dependencies.DeployWebWithoutApprval.result,'Skipped'),eq(variables.DEV_APPROVAL_REQUIRED,'true'))
pool:
vmImage: $(vmImageName)
# creates an environment if it doesn't exist
environment: 'app-dev-with-approval'
strategy:
runOnce:
deploy:
steps:
- script: echo requires approval
更新: 如果我定义了 2 个阶段和相同的一组条件,则此方法有效,但这将在构建详细信息页面中显示我们不想要的 2 个阶段
另一个问题是我们可以根据变量组中的变量值有条件地插入阶段模板吗
- 阶段${{ifeq(variables['Policy_Approval_Required'],'true')}}: