Azure管道阶段和作业依赖性

时间:2020-05-16 14:41:33

标签: azure-devops yaml azure-pipelines

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

我需要支持以下场景,其中部署模板可以在当前阶段同时依赖于一个作业,而在以后阶段可以依赖于同一作业。

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

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

我读到我们现在可以here创建这些类型的依赖关系,但是可以将依赖关系设置为来自上一个阶段还是来自先前的工作?

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

1 个答案:

答案 0 :(得分:1)

根据5/4 Jobs can access output variables from previous stages

中的更新

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

在舞台条件下使用。

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

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

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

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