我正在尝试使用新的多阶段yaml管道从特定版本中下载工件。 DownloadBuildArtifacts@0
任务有一个BuildNumber
的输出变量,我想进一步参考它,但是我不知道如何访问它。
但是从yaml管道定义中,我无法弄清楚如何访问此变量。
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'specific'
project: 'Sandbox'
pipeline: 'bash-testing'
buildVersionToDownload: 'latest'
downloadType: 'single'
artifactName: 'someArtifactName'
referenceNames: 'blahblah'
- bash: echo $BLAHBLAH_BUILDNUMBER
简单输出
答案 0 :(得分:3)
您设置了错误的输出变量。
在YAML中的上一个任务中定义输出变量的格式:
echo "##vso[task.setvariable variable=myOutputVar;isOutput=true]this is the value of output variable"
name: PWS
注意:isOutput=true
是键代码,它声明此变量是输出变量。而且,name
等于在经典编辑器用户界面中显示的Reference name
。
有关如何在Bash任务中访问和使用此输出变量,此调用脚本的格式为:
echo $(name.VariableName)
所以,对于我的示例脚本是:
echo $(PWS.myOutputVar)
答案 1 :(得分:1)
我的Yaml是不正确的,Merlin Liang关于name
是正确语法的评论帮助我弄清楚了。
引用任务输出变量所需的正确yaml语法是
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'specific'
project: 'Sandbox'
pipeline: 'bash-testing'
buildVersionToDownload: 'latest'
downloadType: 'single'
artifactName: 'some-artifact-name'
name: 'TEST'
- bash: echo $(TEST.BuildNumber)