【问题标题】:How do I access a task output variable in Azure Dev Ops如何在 Azure Devops 中访问任务输出变量
【发布时间】:2019-07-02 19:07:33
【问题描述】:

我正在尝试使用新的多级 yaml 管道从特定版本下载工件。 DownloadBuildArtifacts@0 任务有一个 BuildNumber 的输出变量,我想进一步引用它,但我不知道如何访问它。

在任务的 GUI 中有一个框可以让您设置参考名称

但是从 yaml 管道定义中我无法弄清楚如何访问这个变量。

- task: DownloadBuildArtifacts@0
  inputs:
    buildType: 'specific'
    project: 'Sandbox'
    pipeline: 'bash-testing'
    buildVersionToDownload: 'latest'
    downloadType: 'single'
    artifactName: 'someArtifactName'
    referenceNames: 'blahblah'
- bash: echo $BLAHBLAH_BUILDNUMBER

简单输出

【问题讨论】:

    标签: azure-devops azure-pipelines


    【解决方案1】:

    您设置的输出变量定义不正确。

    YAML中上一个任务中定义输出变量的格式:

    echo "##vso[task.setvariable variable=myOutputVar;isOutput=true]this is the value of output variable"
    name: PWS
    

    注意isOutput=true 是宣布此变量为输出变量的键码。此外,name 等于在经典编辑器 UI 中显示的Reference name

    关于如何在 Bash 任务中访问和使用这个输出变量,这个调用脚本的格式是:

    echo $(name.VariableName)
    

    所以,对于我的示例脚本是:

    echo $(PWS.myOutputVar)
    

    【讨论】:

    • 这不会导致变量“PWS.myOutputVar”出现在任务组参数列表中吗?
    【解决方案2】:

    我的 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-06
      • 1970-01-01
      • 1970-01-01
      • 2020-07-24
      • 1970-01-01
      • 2020-06-21
      • 1970-01-01
      • 2020-03-25
      相关资源
      最近更新 更多