【问题标题】:custom pipeline resource variables自定义管道资源变量
【发布时间】:2021-10-12 17:25:36
【问题描述】:

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

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

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

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

【问题讨论】:

  • 管道之间?不。您要保留哪些数据?
  • 这是一个字符串,表示我的部分工件的版本号。不知何故,我无法使用内部版本号对工件的这一部分进行版本控制,因此这个问题
  • 两部分。是的,您可以发布一个文件,其中包含要转移到辅助管道的一组变量。在secondary中,下载artifact task,并在task中作为中介读取它们。
  • 工件文件对我来说太过分了。作为一个快速修复,我最终得到了一个可以由用户输入手动覆盖的管道参数。我会留下这个问题,以防万一有现成的解决方案

标签: azure-devops azure-pipelines azure-pipelines-yaml


【解决方案1】:

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

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

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

步骤:

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

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

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

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

How to modify Azure DevOps release definition variable from a release task?

或者您可以使用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]

【讨论】:

    猜你喜欢
    • 2015-01-17
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    • 2023-03-23
    • 2020-09-20
    相关资源
    最近更新 更多