powershell - 在 yaml 中如何从 powershell 脚本获取输出变量的值,然后将其传递给另一个模板
问题描述
我有一个 Azure DevOps Yaml 构建管道。yaml 文件调用 PowerShell 脚本,如下所示:
- task: PowerShell@1
name: SetBuildNumber
displayName: 'Set Build Number'
inputs:
scriptName: '$(Build.SourcesDirectory)\BuildScripts\UpdateBuildNumber.ps1'
这个 powershell 脚本应该输出一个变量的值。这是我在那里的:
Write-Output '##vso[task.setvariable variable=updatedCounter;isOutput=true]$(updatedCounter)'
&updatedCounter
是该脚本中的一个变量,它被设置为一个数字。我希望调用它的 yaml 文件能够在发送到另一个文件的参数中使用该数字。这就是我所拥有的:
- template: ${{ variables.buildtemplate }}
parameters:
BuildVersion: ${{ variables.BuildVersion }}$[SetBuildNumber.updatedCounter]
但是传递给模板的是与字符串“$[SetBuildNumber.updatedCount]”连接的 BuildVersion 变量的值。所以它最终是这样的,例如,其中的值为variables.BuildVersion
“1.2.3。”:
“1.2.3.$[SetBuildNumber.updatedCounter]”
我究竟做错了什么?
解决方案
输出变量可以通过宏语法: 引用$()
,所以它应该是:
BuildVersion: ${{ variables.BuildVersion }}$(SetBuildNumber.updatedCounter)
这仅在您引用来自同一阶段和同一作业的输出变量时才有效。在这种情况下,您也可以删除isOutput=true
并简单地使用$(updatedCounter)
.
如果引用发生在不同的阶段或作业中,则语法会更复杂一些。
推荐阅读
- android - 带有通知和嵌套多个图的 Jetpack 导航图问题
- python - 如果正则表达式不匹配,则在 pandas str.extract() 之后保留原始字符串值
- laravel - 我无法访问附加到数据透视表的数组?
- python - 在 1000 个类别的 imagenet 数据集上重新训练 Vgg16 keras 模型,从而降低预训练权重的准确性
- python - 将子图保存为图像?怎么做
- c++ - 如何在 CComboBoxEx 中获取当前选定的文本?
- ruby-on-rails - 每月第一个星期四运行 rake 任务的 Cron 表达式
- c# - 从 appservice 调用 Azure webjob
- github - 如何获取 GitHub Actions 中特定步骤的输出?
- c++ - C++成员函数上的cppcheck格式字符串