Как получить доступ к выходной переменной задачи в Azure Dev Ops - PullRequest
1 голос
/ 02 июля 2019

Я пытаюсь использовать новые многоступенчатые конвейеры yaml для загрузки артефакта из определенной сборки. Задача DownloadBuildArtifacts@0 имеет выходную переменную для BuildNumber, на которую я хотел бы сослаться в дальнейшем, но я не могу понять, как получить к ней доступ.

В графическом интерфейсе для задания есть поле, в котором вы можете установить ссылочное имя enter image description here

Но из определения конвейера yaml я не могу понять, как получить доступ к этой переменной.

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

Просто выводит

enter image description here

Ответы [ 2 ]

3 голосов
/ 03 июля 2019

Вы указали неверную выходную переменную.

Формат определения выходной переменной в предыдущем задании в YAML:

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

Примечание : isOutput=true - это код ключа , который объявляет, что эта переменная является выходной переменной. Кроме того, name равно Reference name, отображаемому в интерфейсе редактора Classic.

enter image description here

Для получения доступа и использования этой выходной переменной в задаче Bash, формат этого сценария вызова:

echo $(name.VariableName)

Итак, для моего примера сценария:

echo $(PWS.myOutputVar)
1 голос
/ 03 июля 2019

Мой ямл был неверным, и комментарий Мерлина Ляна о том, что 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)
...