首页 > 解决方案 > Azure 管道阶段和作业依赖项

问题描述

我正在尝试创建两个用于与 API 集成的管道模板,它们 1)安装应用程序 2)将应用程序部署到 API 管理的某些设备。安装模板处理安装并取回部署模板部署应用程序所需的应用程序 ID。以后无法查询 API 以获取应用程序 ID,因此我必须使其可用于安装模板,以便稍后由部署模板使用。install 任务将被调用一次,但 deploy 任务可以为不同的设备“环”多次调用。

我需要支持以下场景,其中部署模板可以依赖于当前阶段的作业,并且可以依赖于稍后阶段的相同作业。

stages:
- stage: NonProd
  jobs:
  - template: install.yml@pipeline_template
  - template: deploy.yml@pipeline_template  

- stage: Prod
  dependsOn: NonProd
  jobs:
  - template: deploy.yml@pipeline_template

我读到我们现在可以在这里创建这些类型的依赖项,但是是否可以将依赖项设置为来自先前阶段或先前的工作?

我考虑尝试将这些组合成一个模板,但不幸的是,如果相同版本的应用程序已经存在,安装步骤将不会提供应用程序 ID,只是一个错误。

标签: azure-devopsyamlazure-pipelines

解决方案


根据 5/4 Jobs 的更新,可以访问之前阶段的输出变量

您当前可以指定基于前一阶段中设置的输出变量的值运行阶段。

这用于阶段的条件。

但是是否可以将依赖项设置为来自先前阶段或先前的工作?

你不能直接依赖另一个阶段的工作。

但是,当您在一个阶段定义多个作业时,您可以指定它们之间的依赖关系。管道必须包含至少一项没有依赖关系的作业。

此外,您还可以将一个阶段依赖于其他阶段。


推荐阅读