【问题标题】:Azure YAML Pipelines: Is it possible to find out which pipeline triggered a build?Azure YAML Pipelines:是否可以找出触发构建的管道?
【发布时间】:2022-01-08 09:32:06
【问题描述】:

我的 Azure DevOps 项目有两个存储库。一个用于云基础设施部署,另一个包含我的应用程序代码。

我有一个 YAML 管道,它在任何这些 repos 构建管道完成后触发。管道看起来有点像这样:

resources:
  pipelines:
  - pipeline: MyProject-Code
  - pipeline: MyProject-Infrastructure
  
jobs:
- job: DeployInfrastructure
  steps:
  # Here are the tasks the deploy the project infrastructure

- job: DeployCode
  steps:
  # Here are the tasks that deploy the code

我想在 DeployInfrastructure 作业上设置一个条件,以便仅在触发管道是基础设施管道时执行它,因为如果更改仅影响应用程序代码,我不需要重新部署它。

但是,在阅读documentation from Microsoft 时,似乎没有一种非常直接的方法。

【问题讨论】:

    标签: azure-devops yaml azure-pipelines devops


    【解决方案1】:

    看看Pipeline resource variables

    在每次运行中,管道资源的元数据可供所有人使用 预定义变量形式的作业。是 您为管道资源提供的标识符。管道 资源变量仅在运行时可用。

    还有许多 predefined variables 称为 Build.TriggeredBy.*,其中有 Build.TriggeredBy.DefinitionName,但是文档建议对于带有管道触发器的 yaml 管道,应该使用资源变量来代替

    如果构建是由另一个构建触发的,则设置此变量 到触发构建管道的名称。在经典管道中, 此变量由构建完成触发器触发。

    此变量是代理范围的,可以用作环境 脚本中的变量和构建任务中的参数,但不是 内部版本号的一部分或作为版本控制标记。

    如果您使用资源触发 YAML 管道,则应使用 而是资源变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-30
      • 1970-01-01
      • 2020-08-15
      • 1970-01-01
      • 2021-05-03
      • 1970-01-01
      相关资源
      最近更新 更多