我需要为执行yml文件(构建管道)中的阶段设置条件。
条件是,回购名称必须包含“ application”关键字,否则,该阶段需要忽略;
我的代码就是这样
- stage: deploy
condition: contains(variables['Build.Repository.Name'],'application')
dependsOn: build
jobs:
- template: deploy-snapshot-jobs.yml@pipelines-templates
它不是这样,我认为解释器不会用存储库名称替换变量['Build.Repository.Name'],因为当我使用回购名称的文字值时,它可以正常工作
有什么帮助可以让这个工作的人吗?
答案 0 :(得分:1)
您可以更改配置以使您的任务不在舞台上。例如,首先我将YAML文件设置如下。
部署阶段没有任务执行前的准备阶段。如果该阶段未签出git源,则Build.Repository.Name值将为null。这就是为什么您的部署阶段不会排队的原因。 由于不同的阶段意味着不同的环境和代理,因此需要在不同的阶段再次获取代理范围的变量值。 Build.Repository.Name是代理范围的变量,您可以参考https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml#build-variables。