首页 > 解决方案 > 自定义管道资源变量

问题描述

我有一个 Azure 管道,它使用另一个管道生成的工件。像这样的东西

resources:
  pipelines:
  - pipeline: BuildPipeline
    source: project-ci

有了这个参考,我可以参考一些管道资源变量,比如resources.pipeline.BuildPipeline.runName.

问题是,除了预定义变量(此处列出)之外,是否可以在第一个管道中发布自定义变量,以便稍后将其作为资源变量使用?

标签: azure-devopsazure-pipelinesazure-pipelines-yaml

解决方案


问题是,除了预定义的变量(此处列出)之外,是否可以在第一个管道中发布自定义变量,以便稍后将其用作资源变量?

恐怕目前还没有这种直接的方法可以将第一个管道中的自定义变量作为资源变量发布。

作为解决方法,我们可以在资源管道中使用 REST API 来更新当前管道的变量选项卡中的变量。

脚步:

  • 在后面的管道定义变量中定义一个变量。

  • 在资源管道中添加一个任务来调用 REST API ( Definitions - Update ),以在稍后的发布管道中更新上述变量的值。

  • 在后面的管道中使用后面的管道变量的更新值。

有关使用 REST API 更新定义变量的值的详细信息,您可以按照以下票证:

如何从发布任务修改 Azure DevOps 发布定义变量?

或者您可以使用Azure CLI更新变量:

az pipelines variable update --name
                             [--allow-override {false, true}]
                             [--detect {false, true}]
                             [--new-name]
                             [--org]
                             [--pipeline-id]
                             [--pipeline-name]
                             [--project]
                             [--prompt-value {false, true}]
                             [--secret {false, true}]
                             [--subscription]
                             [--value]

推荐阅读