azure-devops - 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,只是一个错误。
解决方案
根据 5/4 Jobs 的更新,可以访问之前阶段的输出变量
您当前可以指定基于前一阶段中设置的输出变量的值运行阶段。
这用于阶段的条件。
但是是否可以将依赖项设置为来自先前阶段或先前的工作?
你不能直接依赖另一个阶段的工作。
但是,当您在一个阶段定义多个作业时,您可以指定它们之间的依赖关系。管道必须包含至少一项没有依赖关系的作业。
此外,您还可以将一个阶段依赖于其他阶段。
推荐阅读
- html - CSS Only sidenav 在路由时不关闭
- c# - 如何在剃须刀页面中显示动态类别?
- javascript - 警告:标签
在此浏览器中无法识别 - sparql - dbnary SPARQL 查询产生零结果,如何查找原因?
- python - 在 Python 2.7 中用希伯来语查询 oracle
- reactjs - 开玩笑的异步测试返回空div
- java - 如何使用 Java 而不是 XML 更改此自定义进度条的颜色?
- android - Android错误:getDefinedWebViewPackageName没有这样的方法
- github-api - 解释 GitHub Gist raw_url 属性中的参数
- python - 为什么我的 Python Twitter 机器人没有在 Heroku 上使用测功时间?