Azure devops 管道阶段执行不工作的条件

Azure devops 管道阶段执行不工作的条件,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,我需要在yml文件(构建管道)中设置执行阶段的条件 条件是回购名称必须包含“application”关键字,否则需要忽略该阶段 我的代码是这样的 - stage: deploy condition: contains(variables['Build.Repository.Name'],'application') dependsOn: build jobs: - template: deploy-snapshot-jobs.yml@pipelines-templates 它

我需要在yml文件(构建管道)中设置执行阶段的条件

条件是回购名称必须包含“application”关键字,否则需要忽略该阶段

我的代码是这样的

- stage: deploy
  condition: contains(variables['Build.Repository.Name'],'application')
  dependsOn: build
  jobs:
   - template: deploy-snapshot-jobs.yml@pipelines-templates
它不是这样工作的,我认为解释器不会用存储库名称替换变量['Build.Repository.Name'],因为当我使用repo Name的文本值时,它工作得很好


有什么帮助吗?如何让这些工作人员工作?

您可以更改配置以影响您的任务,而不是阶段。例如,首先我设置YAML文件如下。

部署阶段不会排队,您可以在日志中看到一些差异。

部署阶段没有任务之前的准备阶段。如果阶段没有签出git源,Build.Repository.Name值将为null。这就是部署阶段不会排队的原因。 由于不同的阶段意味着不同的环境和代理,因此需要在不同的阶段再次获得代理范围内的变量值。Build.Repository.Name是一个代理范围的变量,您可以引用到

当我编辑YAML文件时,如下所示。

部署阶段将按预期运行。

如果存储库名称与条件不匹配,则错误日志如下所示。

我无法重现您的问题,我尝试了条件,跳过了阶段。(我不使用模板,可能是相关的?)如果回购名称包含“应用程序”阶段也将被跳过,您可以通过回购名称包含的任何内容更改“应用程序”,将被跳过,您能确认吗?这是工作变量['Build.DefinitionName']我的错误!即使我的回购协议包含我在条件中输入的单词,这个阶段也跳过了。@AnouarBAKRI,嗨,事情进展如何?我的回答能帮你解决问题吗?如果是,您可以接受答案,这样其他用户就可以看到解决方案是否有效。如果您仍然面临一些问题,请随时在此处留言:-)