如何在发布管道中使用输出变量

Posted

技术标签:

【中文标题】如何在发布管道中使用输出变量【英文标题】:How to use Output Variables in Release pipeline 【发布时间】:2020-04-09 16:24:25 【问题描述】:

我搜索了所有关于输出变量用于构建管道的文档,只告诉我如何在 .yaml 中设置。但是如何在发布管道中使用它呢?

假设我在登录步骤中有 2 个变量 $abc="123" $def="456" 。如何在下面的文本框中设置它们?以及如何在步骤部署中使用它们?

【问题讨论】:

这在文档中也有解释 (docs.microsoft.com/en-us/azure/devops/pipelines/process/…) 。您可能错过了“Yaml”旁边有一个“经典”标签 我阅读了链接。但我还是不明白。第一句话是“一些任务定义输出变量”。但是如何在我的问题描述的任务登录中定义输出变量? 您没有在文本框中设置它们。这些变量只能在自定义任务清单中定义。如果您使用脚本任务,您仍然可以设置输出任务,但无法在 UI 中看到它们。您可以在 UI 中设置参考部分。 【参考方案1】:

一些任务定义输出变量

对于简短的文本,它代表以下脚本:

echo "##vso[task.setvariable variable=abc;isOutput=true]123"

只需在任务的空白处指定引用名称,然后,就可以调用这个输出变量abc,格式为:<reference name>.<variable name>

例如,如果您将引用名称指定为mycustom,则只需使用$(mycustom.abc) 调用输出变量即可。

【讨论】:

是否可以在同一管道内的不同代理中使用输出变量? @sree1611,您正在使用带有 YAML 或经典 UI 的管道?如果是 YAML,是的,你可以。如果是经典的UI,恐怕你做不到。您必须使用脚本将输出变量添加为环境变量,然后其他代理才能访问它。 Hope Release 管道不支持 YAML。你能提供一些如何设置环境变量的例子吗? 环境变量只有在发布管道完成后才会更新。我想在不同代理的同一作业中使用更新后的变量。 @sree1611 你可以看看这个关于如何在管道执行期间设置环境变量的答案:***.com/a/59357743/11508165让我知道它对你有帮助:-)

以上是关于如何在发布管道中使用输出变量的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Azure REST API 从管道中获取所有变量?

如何在 Informix 中过滤 dbaccess 输出?

如何在 Gitlab 中基于管道变量运行作业?

如何在 Azure DevOps 变量组中使用 SecureFile?

如何在声明性 Jenkins 管道的各个阶段之间传递变量?

未定义变量时如何优雅地使管道失败